Skip to content

Commit

Permalink
Run tests in parallel or only some with a filter
Browse files Browse the repository at this point in the history
`make check JOBS=4` will spawn 4 workers and spread the tests among them.
`make check FILTER=try` will only run tests that contain `try` in their name.
  • Loading branch information
Levak committed Jun 19, 2024
1 parent 513e03c commit d8f955d
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 10 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
*.kdev4
/.kdev4
__pycache__
tests-out
3 changes: 2 additions & 1 deletion README.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ https://github.com/zrax/pycdc
* Build the generated project or makefile
* For projects (e.g. MSVC), open the generated project file and build it
* For makefiles, just run `make`
* To run tests (on \*nix or MSYS), run `make check`
* To run tests (on \*nix or MSYS), run `make check JOBS=4` (optional
`FILTER=xxxx` to run only certain tests)

## Usage
**To run pycdas**, the PYC Disassembler:
Expand Down
15 changes: 6 additions & 9 deletions tests/all_tests.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
#!/bin/bash
set -e

srcdir="$(cd "$(dirname "${BASH_SOURCE[0]}")"/.. && pwd)"
jobs=${JOBS:-4}
filter=${FILTER:-""}

test_status=0
test_files=( "$srcdir"/tests/tokenized/*.txt )
for tf in "${test_files[@]}"; do
test_name="$(basename "$tf")"
test_name="${test_name%.txt}"
"$srcdir"/tests/decompyle_test.sh $test_name tests || test_status=1
done

exit $test_status
find "${srcdir}/tests/tokenized" -type f -name '*.txt' -a -name "*${filter}*" -print0 | \
xargs -0 -I '{}' -P $jobs \
bash -c 'o=$('"$srcdir"'/tests/decompyle_test.sh "$(basename -s .txt "{}")" tests-out) r=$?; echo "$o"; exit $r'

0 comments on commit d8f955d

Please sign in to comment.