aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVirgil Dupras <hsoft@hardcoded.net>2018-08-15 10:26:51 -0400
committerVirgil Dupras <hsoft@hardcoded.net>2018-08-15 10:26:51 -0400
commite046d875a0bc655c522fc30760e61c8b2b3408d8 (patch)
treefbe3276280258bbe9414b47b1282483bd8a40384
parentRemove pylint (diff)
downloadgentoolkit-e046d875a0bc655c522fc30760e61c8b2b3408d8.tar.gz
gentoolkit-e046d875a0bc655c522fc30760e61c8b2b3408d8.tar.bz2
gentoolkit-e046d875a0bc655c522fc30760e61c8b2b3408d8.zip
Add functional tests through "cmdtests"
These tests run a list of commands on both the system gentoolkit and the source from the active work directory, and then compares the results. It's a great way to verify that a refactoring didn't introduce an unwanted change in behavior.
-rw-r--r--cmdtests/README.txt16
-rw-r--r--cmdtests/cmds.txt3
-rwxr-xr-xcmdtests/runtests.sh21
3 files changed, 40 insertions, 0 deletions
diff --git a/cmdtests/README.txt b/cmdtests/README.txt
new file mode 100644
index 0000000..192a7fc
--- /dev/null
+++ b/cmdtests/README.txt
@@ -0,0 +1,16 @@
+Use the "runtests.sh" script to test the output of all commands in "cmds.txt"
+against the output that the version of gentoolkit installed on the system
+yields.
+
+It's a great way to verify that a refactoring didn't affect output.
+
+Usage:
+
+$ cd cmdtests
+$ ./runtests.sh
+
+You can also test against a specific version of gentoolkit instead. Clone a
+copy of gentoolkit to test against and then do:
+
+$ cd cmdtests
+$ ./runtests.sh /path/to/othergentoolkit/pym
diff --git a/cmdtests/cmds.txt b/cmdtests/cmds.txt
new file mode 100644
index 0000000..38ebb2e
--- /dev/null
+++ b/cmdtests/cmds.txt
@@ -0,0 +1,3 @@
+equery meta dev-lang/python
+equery d -a llvm
+equery l "vim*"
diff --git a/cmdtests/runtests.sh b/cmdtests/runtests.sh
new file mode 100755
index 0000000..ba0ff22
--- /dev/null
+++ b/cmdtests/runtests.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+TEST_AGAINST_PYTHON_PATH=$1
+
+while read -r line; do
+ echo "Running $line > before"
+ PYTHONPATH="${TEST_AGAINST_PYTHON_PATH}"
+ eval "$line" > before || exit 1
+ echo "Running $line > after"
+ PYTHONPATH="../pym"
+ eval "$line" > after || exit 1
+ DIFF=$(diff -u before after)
+ if [[ -n $DIFF ]]; then
+ echo "Different!"
+ echo "$DIFF"
+ exit 1
+ fi
+done < cmds.txt
+
+rm before after
+echo "All commands output the exact same thing!"