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
Jeremy Anselme committed Jun 11, 2024
1 parent 513e03c commit 39fc88b
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 11 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
16 changes: 6 additions & 10 deletions tests/all_tests.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
#!/bin/bash

srcdir="$(cd "$(dirname "${BASH_SOURCE[0]}")"/.. && pwd)"
cd "$(dirname "$0")"/..
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 tests/tokenized -type f -name '*.txt' -a -name "*${filter}*" -print0 | \
xargs -0 -I '{}' -P $jobs \
bash -c 'echo -e "$(tests/decompyle_test.sh "$(basename -s .txt "{}")" tests-out)"'

0 comments on commit 39fc88b

Please sign in to comment.