Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/mujs/tools/test262 @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 #!/bin/sh | |
| 2 | |
| 3 usage() { | |
| 4 [ "${1-}" ] && { to=2; >&$to printf "Error: %s\n" "$1"; } || to=1 | |
| 5 >&$to echo "Usage: ${0##*/} [OPTIONS] test-file | test-dir" | |
| 6 >&$to echo "Run test-262 ES5 test file or directory (at the test262 dir)." | |
| 7 >&$to echo " -s Print source code of failed tests." | |
| 8 >&$to echo " -p Print every test name before running it" | |
| 9 >&$to echo " -f Display full paths and full stack trace when possible" | |
| 10 >&$to echo " -l file.js Load file.js after the harness and before the test (up to one)" | |
| 11 >&$to echo " -m MUJS MUJS is [path/to/]mujs binary to test" | |
| 12 >&$to echo " Default is $(dirname "$0")/../build/release/mujs or mujs at \$PATH" | |
| 13 >&$to echo " -b Don't skip known bad (crashing/hanging) tests" | |
| 14 >&$to echo " -B Run only known bad tests" | |
| 15 exit $((to-1)) | |
| 16 } | |
| 17 | |
| 18 KNOWN_BAD=" | |
| 19 --hang-with-sta.js: | |
| 20 S15.1.3.2_A2.5_T1.js | |
| 21 S15.1.3.1_A2.5_T1.js | |
| 22 | |
| 23 --Hang-(or-taking-more-than-few-seconds): | |
| 24 15.4.4.18-3-14.js | |
| 25 15.4.4.20-3-14.js | |
| 26 S15.4.4.10_A3_T2.js | |
| 27 S15.4.4.10_A3_T1.js | |
| 28 15.4.4.19-3-29.js | |
| 29 15.4.4.19-3-28.js | |
| 30 15.4.4.19-3-8.js | |
| 31 15.4.4.19-3-14.js | |
| 32 S15.4.4.8_A3_T3.js | |
| 33 15.4.4.22-3-9.js | |
| 34 15.4.4.22-3-7.js | |
| 35 15.4.4.22-3-25.js | |
| 36 15.4.4.22-3-14.js | |
| 37 15.4.4.21-3-14.js | |
| 38 15.4.4.15-3-28.js | |
| 39 15.4.4.15-3-14.js | |
| 40 15.4.4.15-3-7.js | |
| 41 15.4.4.15-3-25.js | |
| 42 15.4.4.15-3-9.js | |
| 43 " | |
| 44 | |
| 45 SKIP_KNOWN=yes # "yes": skip bad "no": don't skip "neg": run only bad | |
| 46 PRINT_ALL= | |
| 47 EXTRA_ARGS= | |
| 48 mujs= lopt= | |
| 49 | |
| 50 while getopts bBfhl:ps o; do | |
| 51 case $o in | |
| 52 h) usage ;; | |
| 53 b) SKIP_KNOWN=no ;; | |
| 54 B) SKIP_KNOWN=neg ;; | |
| 55 p) PRINT_ALL=yes ;; | |
| 56 s) EXTRA_ARGS="$EXTRA_ARGS -s" ;; | |
| 57 f) EXTRA_ARGS="$EXTRA_ARGS -f" ;; | |
| 58 l) [ "$OPTARG" ] && lopt=$OPTARG || usage "empty file for -l" ;; | |
| 59 m) mujs=$OPTARG;; | |
| 60 *) usage "unknown option -$o" ;; | |
| 61 esac | |
| 62 done | |
| 63 shift $((OPTIND-1)) | |
| 64 [ $# = 1 ] || usage "expecting one file/dir" | |
| 65 | |
| 66 BAD= | |
| 67 if [ "$SKIP_KNOWN" != no ]; then | |
| 68 for b in $KNOWN_BAD; do | |
| 69 BAD="$BAD $b " | |
| 70 done | |
| 71 fi | |
| 72 | |
| 73 find_root() { | |
| 74 ROOT=$1 | |
| 75 n=0 | |
| 76 while ! [ -e "$ROOT"/test/harness/sta.js ]; do | |
| 77 ROOT=$ROOT/.. | |
| 78 n=$((n+1)) | |
| 79 [ $n -lt 10 ] || usage "can't find test-suite root" | |
| 80 done | |
| 81 } | |
| 82 | |
| 83 if [ -d "$1" ]; then | |
| 84 find_root "$1" | |
| 85 | |
| 86 if [ "$ROOT" = "$1" ]; then | |
| 87 FILES_CMD='find "$1/test/suite" -name "*.js" | sort -V' | |
| 88 else | |
| 89 FILES_CMD='find "$1" -name "*.js" | sort -V' | |
| 90 fi | |
| 91 else | |
| 92 find_root "$(dirname "$1")" | |
| 93 FILES_CMD='printf "%s\n" "$1"' | |
| 94 fi | |
| 95 | |
| 96 if ! [ "$mujs" ]; then | |
| 97 # try to use a recently built mujs rather than a global one | |
| 98 mujs=$(dirname "$0")/../build/release/mujs | |
| 99 [ -e "$mujs" ] || mujs=mujs | |
| 100 fi | |
| 101 jsharness=$(dirname "$0")/test262-harness.js | |
| 102 | |
| 103 total=0 | |
| 104 skipped=0 | |
| 105 failed=0 | |
| 106 | |
| 107 eval "$FILES_CMD" | ( | |
| 108 while IFS= read -r f && [ "$f" ]; do | |
| 109 total=$((total+1)) | |
| 110 base=${f##*/} | |
| 111 | |
| 112 case $BAD in *" $base "*) bad=yes;; *) bad=no;; esac | |
| 113 | |
| 114 case $bad-$SKIP_KNOWN in | |
| 115 yes-yes) | |
| 116 skipped=$((skipped+1)) | |
| 117 printf "[Skipping: $base]\n\n" | |
| 118 ;; | |
| 119 no-neg) # not known bad and running only bad - don't print anything | |
| 120 skipped=$((skipped+1)) | |
| 121 ;; | |
| 122 *) | |
| 123 [ "$PRINT_ALL" ] && echo "Testing: $f" | |
| 124 if ! "$mujs" -- "$jsharness" $EXTRA_ARGS ${lopt:+-l "$lopt"} "$ROOT" "$f" 2>&1; then | |
| 125 failed=$((failed+1)) | |
| 126 echo | |
| 127 fi | |
| 128 esac | |
| 129 done | |
| 130 | |
| 131 if [ $total -gt 1 ]; then | |
| 132 printf "Total: $total\n" | |
| 133 printf "Pass: %${#total}s\n" $((total - skipped - failed)) | |
| 134 printf "Skip: %${#total}s\n" $skipped | |
| 135 printf "Fail: %${#total}s\n" $failed | |
| 136 fi | |
| 137 | |
| 138 [ "$failed" = 0 ] | |
| 139 ) |
