diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..670f16fec3 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,5 @@ +[submodule "testsuite"] + path = testsuite + url = https://github.com/gpac/testsuite.git + branch = filters + ignore = dirty diff --git a/tests/README.MD b/tests/README.MD deleted file mode 100644 index 68bccf19b0..0000000000 --- a/tests/README.MD +++ /dev/null @@ -1,281 +0,0 @@ -This is the documentation for creating a new test in GPAC test suite. - -# Running the test suite - -To run the entire test suite, simply run `make_tests.sh` or use the Makefile task `make test_suite`. - -Running the test suite or a given test generates: -- result/all_logs.txt: logs of all tests that were executed -- result/all_results.xml: GNU time/gtime statistics and execution status of all tests that were executed - -The different options of make_tests.sh are given by the command: -``` -make_tests.sh -h -``` -In particular, tests are cached, so that only failed tests are re-launched when running the test suite. - -# Writing a test -GPAC test suite is composed of scripts written in the Bash language. Tests are placed in gpac/tests/scripts/. Each .sh file in that folder will be executed when running the entire test suite or may be run individually. To run a particular script, run `make_tests.sh ascript.sh`. - -Media files used in a test can be anywhere (local file, http URL). The environmnent variable `$MEDIA_DIR` can be used to access to data located in gpac/tests/media. - -Scripts should use the `$TEMP_DIR` environment variable to get a directory where to place the file they generate. This directory is cleaned after each test, unless `-tmp`option is set. - -A simple GPAC test can be: -``` -#!/bin/sh -MP4Box -add $MEDIA_DIR\foo.bar $TEMP_DIR\foo.mp4 -``` -or -``` -#!/bin/sh -MP4Client $MEDIA_DIR\foo.mp4 -``` - -In order to provide test caching and produce the unified test report for all the tests, with common timing, logging, etc, `make_tests.sh` defines several functions that should be used in a test. - -Each test has its own log file `$LOGS` in which you can write (a lot is already in there, such as test name/data and all stderr). - -Tests may be customized depending on the platform they run on. the environment variable `$GPAC_OSTYPE` can be used to test the binary version used; the currently defined values are `lin32`, `lin64`, `win32`, `win64`, `osx32`, `osx64` and `unknwon`. - - -## Simple Testing -A simple test whose result will be integrated in the test suite report is run using the single_test function. - -### single_test -Two arguments: -- `CMD_LINE`: Executes the given `CMD_LINE`. The command line must be passed between single or double quotes. -- `TESTNAME`: specifies the test name - -Each call generates: -- a log file called `TESTNAME-single-logs.txt` containg test name, command line and all stderr of the test. You should not use file logging of GPAC ( `-lf` or `-logs` options) in your command line. -- a file called `TESTNAME-single-passed.xml` containg the statistics of the test, as retrieved by GNU time/gtime. -`TESTNAME` shall be unique in the test suite. In case of doubts, run the test suite script with `-check-name`. - -A simple test using `single_test` looks like: -``` -#!/bin/sh -single_test "MP4Box -add $MEDIA_DIR\foo.bar $TEMP_DIR\foo.mp4" test01 -``` -or -``` -#!/bin/sh -single_test "MP4Client $MEDIA_DIR\foo.mp4" test02 -``` - -### do_play_test -Two or three arguments: -- `TESTNAME`: specifies the test name for logging, as used in `single_test` -- `VIDEO_ARGS`: specifies the video arguments to be loaded. If not empty, a filter chain will be loaded using these arguments as source (i.e., `gpac -i VIDEO_ARGS`) -- `AUDIO_ARGS`: specifies the audio arguments to be loaded. If not empty, a filter chain will be loaded using these arguments as source (i.e., `gpac -i AUDIO_ARGS`). If `-`, argument is ignored but an audio filter subchain ( `aout` or `enc:aac`) will be added to the filter chain. -Performs a playback test using `gpac` with the arguments given in `VIDEO_ARGS` and `AUDIO_ARGS`. -If `-play` option is specified when running the tests, playbacks the sources. -If `-video` option is specified when running the tests, encodes the result using H264 and AAC in `results/video/$TESTNAME.mp4`. - - -## Aggregating tests -When the results of several tests need to be aggregated, instead of using multiple `single_test` calls, sub-tests can be run within a test using the `do_test` function. -This is usefull when several tests require the generation of the same input file, for example. - -A typical test with two subtests used in a batch will look like: -``` -mytest() -{ -test_begin $1 -do_test CMD_LINE1 "Name1" -do_test CMD_LINE1 "Name2" -test_end -} - -for i in * ; do - mytest $i -done -``` - -### test_begin -Argument: -- `TESTNAME`: specifies the test name for logging, as used in `single_test` - -This function defines overridable variables: -- `$dump_size`: by default "192x192" but can be overriden by your test -- `$dump_dur`: by default "5" seconds but can be overriden by your test - -### test_end -No argument. - -Triggers the end of the test and writes all logs and statistics. -The function evaluates the variable `$result`. If not empty, the test is considered failed, otherwise (default) the test has passed. -All results of subtests are automatically appended to the `$result` variable in the `end_test` function. -WARNING: this variable can not be set in a subshell (eg in `some_function SOME_PARAM &` called during a test), it must be set in the shell calling `test_begin`. - -### do_test -Two arguments: -- `CMD_LINE`: the command line to execute -- `SUBTEST_NAME`: the subtest name as it appears in the logs and in the stats - -Performs a subtest in the current test. If needed, the return value is available in `$ret`. -Function does nothing when the test is skipped (see below) or a previous error occured in the parent test `TESTNAME`. - - -## Test failure/success -A test is considered successful if the execution returned 0. -Some tests may return a non-zero value and still be considered successful (e.g. negative tests). In that case, errors to be ignored are placed in a file in the gpac/rules directory. If any of the line in this file is found, the test is considered successful. -The error file is named: -- `TESTNAME-stderr.txt` for tests run with the function `single_test` -- `$TESTNAME-$SUBTEST-stderr.txt` for subtests run with `do_test` `CMD_LINE``SUBTEST` - -## Customized test -To customize a test, a file named `$TESTNAME.sh` can be placed in the gpac/rules directory. It is called before the actual test is run and allows custom variables to be set or overriding a given variable in a batch of tests, while still using a single generic test function. Directories variables shall not be modified. Other variables of the test suite documented here are reset at the begining of each test. - -## Testing and caching results -In order to avoid running all tests again whenever one test fails, the GPAC testing environment caches previous test results. If an XML file corresponding to the test or subtest exists in the results folder, the test or subtest is not run. If you want to ignore previous results, use `make_tests.sh -clean` before running the test suite. If you only want to invalidate tests of a given script, use `make_tests.sh -clean script.sh` -In case a test requires generating files before testing , it is recommended to check the variable `test_skip` to check if the test is being skipped because cached. A typical function looks like: - -A typical test with several subtests looks like: -``` -test_begin TESTNAME -if [ $test_skip = 1 ] ; then - return -fi - -#create some file or costly operation -MP4Box -add 4GB.src -new TESTFILE -do_test CMD_LINE1_USING_TESTFILE "Name1" -do_test CMD_LINE2 "Name2" - -test_end -``` -In this example, failure to checktest `$test_skip` will make the script import 4GB.src even though all `do_test` calls will be skipped. - - -## Testing events and interactivity -The test suite has one UI trace generation mode, and one UI trace playback mode. In these two modes, all subtests are skipped (i.e. `$test_skip` is 1), and the variable `$test_ui`is set to 1 when recording and 2 when playing. A test may use the `do_ui_test` function to perform UI testing. Since version 0.9.0, trace files have to be manually loaded by the test using them. - -### do_ui_test -Two arguments: -- `FILE`: the command line to execute -- `SUBTEST_NAME`: the subtest name as it appears in the logs and in the stats - -Performs UI event trace generation on $FILE for the subtest using MP4Client, for a running duration of $dump_dur and an output size $dump_size (see `begin_test`). -UI file is generated as $RULES_DIR/${basename $FILE.*}-$SUBTEST-ui.xml - -A typical usage is: - -``` -test_begin TESTNAME -do_ui_test $MEDIA_DIR/somefile "play" - -if [ $test_skip = 1 ] ; then - return -fi - -#create some file or costly operation -uirec=$RULES_DIR/${basename $FILE.*}-$SUBTEST-ui.xml -do_test "$GPAC -i $MEDIA_DIR/somefile --cfg=Validator:Mode=Play -cfg=Validator:Trace=$uirec -o dump.rgb" - -test_end -``` - -Note that the file has to be generated -- before testing cache status since all tests are considered as cached in UI modes -- manually, since subtests are deactivated when the test is cached - -## Parallel tests with subscripts - -Subtests may be run in subscripts, for example: -``` -test_begin TESTNAME - do_test CMD_LINE1 "Name1" & - do_test CMD_LINE1 "Name2" & -test_end -``` - -Tests may also be run in subscript, for example: -``` -function my_test { - test_begin $2 - do_test $1 $2 - test_end -} - -my_test CMD_LINE1 "Name1" & -my_test CMD_LINE2 "Name2" & -``` - - -## Testing regressions with hashes - -Tests may perform all the required checks to detect a regression, such as checking generated file info, counting importing samples, etc ... -To simplify test writing, the GPAC testing environment provide simple hashing (SHA-1) functions that you can perform on generated files such as MP4 or TS files, logs, XML dumps, ... Using hashes avoid storing such files while allowing generic regression detection. Because of this functionnality, the test suite has a specific mode for generating the hashes, `./make_tests -hash`. Hashes are typically generated only once, upon initial test creation. -The test suite script will warn you when reference hashes are missing. -- To clean hashes for a single test, use `./make_tests -clean-hash mytest.sh` -- To generate hashes for a single test, use `./make_tests -hash mytest.sh` - -The following functions are available for hash testing. - -### do_hash_test -Two arguments -- `FILE` -- `HASHNAME` -When the test suite is run in hash generation mode, this generates the reference `hash_refs/$TESTNAME-$HASHNAME.hash`. Otherwise, creates a SHA-1 of FILE and compares it with the reference `$TESTNAME-$HASHNAME.hash`. -Function does nothing when the test is skipped or a previous error occured in the parent test `TESTNAME`. - -WARNING: `HASHNAME` shall be unique for a given test, otherwise hashes will be overwritten. - -A subtest having its result reverted from fail to pass through a rule file will prevent the next hash test to be exectuted by setting the variable `skip_next_hash_test` to 1. -You can set this variable to 0 before calling do_hash_test if you need to force a hash test after a test failure. - -### do_hash_test_bin -Same as `do_hash_test` except skips text mode probing of source file. Should only be used with non-text files. - -### do_compare_file_hashes -Two arguments -- `FILE1` -- `FILE2` -Compares hashes of `FILE1` and `FILE2`. returns 0 if OK or error code otherwise. -Function does nothing when the test is skipped (see below) or a previous error occured in the parent test `TESTNAME`. - -A typical test with several subtests and hash testing looks like: -``` -test_begin TESTNAME -if [ $test_skip = 1 ] ; then - return -fi - -#run some test creating a file FILE1 -do_test CMD_LINE1_CREATING_FILE1 "Name1" -#perform hash on FILE1 - the hash name may be the same as the subtest names -do_hash_test FILE1 "Name1" - -#play the file - this does not generate any hash -do_play_test "Name1" FILE1 - -test_end -``` - -## Test Fuzzing -The test suite can be used to invoke afl-fuzz on the content (see test suite help). -By default all tests are not eligible for fuzzing unless forced by the main script but this can be too heavy, some tests using quite large inputs. -To make your test eligible for fuzzing in default fuzzing mode, you need to overwrite the `fuzz_test` variable. The `fuzz_test` variable is evaluated at each `do_test` call. - -``` -test_begin TESTNAME -if [ $test_skip = 1 ] ; then - return -fi -#declare the test is elligible for fuzzing -fuzz_test=1 -do_test CMD_LINE1_CREATING_FILE1 "Name1" - -#don't fuzz next test -fuzz_test=0 - -do_test CMD_LINE1_CREATING_FILE2 "Name2" - -#and fuzz next test -fuzz_test=1 -do_test CMD_LINE1_CREATING_FILE3 "Name3" - -test_end -``` - diff --git a/tests/ghp_deploy.sh b/tests/ghp_deploy.sh deleted file mode 100755 index c5f74b2632..0000000000 --- a/tests/ghp_deploy.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -if [ -z "$GH_TOKEN" ]; then - echo 'GH_TOKEN is not defined, do nothing' - exit 0 -fi - -set -e # exit with nonzero exit code if anything fails - -cp -rf stylesheet.xsl index.html ../coverage ../coverage.info results - -# go to the results directory and create a *new* Git repo -cd results -rm -rf .git -git init - -# inside this git repo we'll pretend to be a new user -git config user.name "Travis CI" -git config user.email "travisci@gpac.io" - -# The first and only commit to this new Git repo contains all the -# files present with the commit message "Deploy to GitHub Pages". -git add all_results.xml stylesheet.xsl index.html logs coverage coverage.info -git commit -q -m "Deploy to GitHub Pages" - -# Force push from the current repo's master branch to the remote -# repo's gh-pages branch. (All previous history on the gh-pages branch -# will be lost, since we are overwriting it.) We redirect any output to -if grep "platform=\"Linux\"" all_results.xml > /dev/null; then - if [ -z "$GH_REF_LINUX" ]; then - echo 'GH_REF_LINUX is not defined, do nothing' - exit 0 - fi - git push --force --quiet "https://${GH_TOKEN}@${GH_REF_LINUX}" master:gh-pages > /dev/null 2>&1 -elif grep "platform=\"Darwin\"" all_results.xml > /dev/null; then - if [ -z "$GH_REF_MACOS" ]; then - echo 'GH_REF_MACOS is not defined, do nothing' - exit 0 - fi - git push --force --quiet "https://${GH_TOKEN}@${GH_REF_MACOS}" master:gh-pages > /dev/null 2>&1 -else - echo 'platform unknown, do nothing' -fi diff --git a/tests/index.html b/tests/index.html deleted file mode 100644 index 7cdbe84d4a..0000000000 --- a/tests/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - -Welcome to the GPAC Travis - - - -

Welcome to the GPAC Travis

- - - - - - - - diff --git a/tests/make_tests.sh b/tests/make_tests.sh deleted file mode 100755 index b6f594e2a0..0000000000 --- a/tests/make_tests.sh +++ /dev/null @@ -1,1655 +0,0 @@ -#!/bin/bash - -#for user doc, check scripts/00-template -base_args="" - -GNU_TIME=/usr/bin/time -GNU_DATE=date -GNU_TIMEOUT=timeout -#GNU_SED=sed -DIFF=diff -GCOV=gcov -READLINK=readlink - -EXTERNAL_MEDIA_AVAILABLE=1 - -platform=`uname -s` - - -if [ $platform = "Darwin" ] ; then -GNU_TIME=gtime -GNU_DATE=gdate -GNU_TIMEOUT=gtimeout -READLINK=greadlink -fi - - -#if the script in launched from elsewhere, main_dir still needs to be the script directory -main_dir="$(dirname $($READLINK -f $0))" -cd $main_dir - -#if launched from an absolute path, set all paths as absolute (will break on cygwin) -rel_main_dir="." -if [[ "$0" = /* ]]; then - rel_main_dir=$main_dir -fi - - -MP4CLIENT_NOT_FOUND=0 - -generate_hash=0 -global_test_ui=0 -log_after_fail=0 -verbose=0 -enable_timeout=0 -enable_fuzzing=0 -fuzz_all=0 -fuzz_duration=60 -no_fuzz_cleanup=0 -skip_next_hash_test=0 -do_playback=0 -do_clean=0 -do_clean_hash=0 -check_only=0 -disable_hash=0 -strict_mode=0 -track_stack=0 -speed=1 -single_test_name="" -keep_temp_dir=0 -store_video=0 -gpac_profile="" - -current_script="" - -DEF_DUMP_DUR=10 -DEF_DUMP_SIZE="200x200" -DEF_TIMEOUT=20 - -#remote location of resource files: all media files, hash files and generated videos -REFERENCE_DIR="http://download.tsi.telecom-paristech.fr/gpac/gpac_test_suite/resources" -#dir where all external media are stored -EXTERNAL_MEDIA_DIR="$rel_main_dir/external_media" -#dir where all hashes are stored -HASH_DIR="$rel_main_dir/hash_refs" -#dir where all specific test rules (override of defaults, positive tests, ...) are stored -RULES_DIR="$rel_main_dir/rules" -#dir where all referenced videos are stored -SCRIPTS_DIR="$rel_main_dir/scripts" -#dir where all referenced videos are stored -VIDEO_DIR_REF="$rel_main_dir/external_videos_refs" - -#dir where all local media data (ie from git repo) is stored -MEDIA_DIR="$rel_main_dir/media" -#local dir where all data will be generated (except hashes and referenced videos) -LOCAL_OUT_DIR="$rel_main_dir/results" - -#dir where all test videos are generated -VIDEO_DIR="$LOCAL_OUT_DIR/videos" -#dir where all logs are generated -LOGS_DIR="$LOCAL_OUT_DIR/logs" -#temp dir for any test -INTERN_TEMP_DIR="$LOCAL_OUT_DIR/temp" -TEMP_DIR=$INTERN_TEMP_DIR - -ALL_REPORTS="$LOCAL_OUT_DIR/all_results.xml" -ALL_LOGS="$LOCAL_OUT_DIR/all_logs.txt" - -TEST_ERR_FILE="$TEMP_DIR/err_exit" - -rm -f "$TEST_ERR_FILE" 2> /dev/null -rm -f "$LOGS_DIR/*.sh" 2> /dev/null - -if [ ! -e $LOCAL_OUT_DIR ] ; then -mkdir $LOCAL_OUT_DIR -fi - -if [ ! -e $HASH_DIR ] ; then -mkdir $HASH_DIR -fi - -if [ ! -e $VIDEO_DIR ] ; then -mkdir $VIDEO_DIR -fi - -if [ ! -e $VIDEO_DIR_REF ] ; then -mkdir $VIDEO_DIR_REF -fi - - -if [ ! -e $LOGS_DIR ] ; then -mkdir $LOGS_DIR -fi - -if [ ! -e $RULES_DIR ] ; then -mkdir $RULES_DIR -fi - -if [ ! -e $INTERN_TEMP_DIR ] ; then -mkdir $INTERN_TEMP_DIR -fi - -L_ERR=1 -L_WAR=2 -L_INF=3 -L_DEB=4 - -log() -{ - if [ $TERM = "cygwin" ]; then - - if [ $1 = $L_ERR ]; then - echo -ne "\033[31m" - elif [ $1 = $L_WAR ]; then - echo -ne "\033[32m" - elif [ $1 = $L_INF ]; then - echo -ne "\033[34m" - elif [ $verbose = 0 ]; then - echo -ne "\033[0m" - return - fi - - echo $2 - echo -ne "\033[0m" - - else - - if [ $1 = $L_ERR ]; then - tput setaf 1 - elif [ $1 = $L_WAR ]; then - tput setaf 2 - elif [ $1 = $L_INF ]; then - tput setaf 3 - elif [ $verbose = 0 ]; then - tput sgr0 - return - fi - - echo $2 - tput sgr0 - - fi -} - -print_usage () -{ -echo "GPAC Test Suite Usage: $0 [] []" -echo "" -echo "*** Test suite validation options" -echo " -clean [ARG]: removes all removes all results (logs, stat cache and video). If ARG is specified, only clean tests generated by scripts ARG." -echo " -no-hash: runs test suite without hash checking." -echo "" -echo "*** Test suite generation options" -echo " -clean-hash [ARG]: removes all generated hash, logs, stat cache and videos. If ARG is specified, only clean tests generated by scripts ARG." -echo " -hash: regenerate tests with missing hash files." -echo " -uirec: generates UI event traces." -echo " -uiplay: replays all recorded UI event traces - this requies MP4Client." -echo " -speed=N: sets playback speed for -uiplay. Default is 1." -echo "" -echo "*** Fuzzing options" -echo " -do-fuzz: runs test using afl-fuzz (gpac has to be compiled with afl-gcc first)." -echo " -fuzzdur=D: runs fuzz tests for D (default is $fuzz_duration seconds). D is passed as is to timout program." -echo " -fuzzall: fuzz all tests." -echo " -keepfuzz: keeps all fuzzing data." -echo "" -echo "*** General options" -echo " -strict: stops at the first failed test" -echo " -warn: dump logs after each failed test (used for travisCI)" -echo " -videos: stores all videos from playback tests in $VIDEO_DIR" -echo " -keep-tmp or -tmp: keeps tmp folder used in tests (erased by default)" -echo " -sync-hash: syncs all remote reference hashes with local base" -echo " -git-hash: syncs all remote reference hashes from git with local base" -echo " -sync-media: syncs all remote media with local base (warning this can be long)" -echo " -sync-refs: syncs all remote reference videos with local base (warning this can be long)" -echo " -sync-before: syncs all remote resources with local base (warning this can be long) before running the tests" -echo " -check: check test suites (names of each test is unique)" -echo " -track-stack: track stack in malloc and turns on -warn option" -echo " -play: executes playback tests (not all tests use playback tests)" -echo " -p=NAME: sets execution profile of all gpac apps to NAME. Use '-p 0' to disable profiles from local storage (eg for parallel executions of test suite)" -echo " -test=NAME only executes given test" -echo " -precommit alias for -sync-before -git-hash -warn. Before commit/push, you should run ./make_tests -precommit" -echo " SCRIPTS only runs the scripts provided as arguments, by default runs everything in $SCRIPTS_DIR" -echo " -v: set verbose output" -echo " -h: print this help" -} - - -#performs mirroring of media and references hash & videos -sync_media () -{ - log $L_INF "- Mirroring $REFERENCE_DIR/media/ to $EXTERNAL_MEDIA_DIR" - if [ ! -e $EXTERNAL_MEDIA_DIR ] ; then - mkdir $EXTERNAL_MEDIA_DIR - fi - cd $EXTERNAL_MEDIA_DIR - wget -q -m -nH --no-parent --cut-dirs=4 --reject "*.gif" --reject "index.html*" --restrict-file-names=nocontrol "$REFERENCE_DIR/media/" - cd "$main_dir" -} - -sync_hash () -{ -log $L_INF "- Mirroring reference hashes from from github to $HASH_DIR" -cd $HASH_DIR -if [ ! -d ".git" ]; then - rm -f * - git clone https://github.com/gpac/gpac-test-hash.git . -else - git fetch origin - git reset --hard origin/master -fi -cd "$main_dir" -} - - -#performs mirroring of media and references hash & videos -sync_refs () -{ -log $L_INF "- Mirroring reference videos from $REFERENCE_DIR to $VIDEO_DIR_REF" -cd $VIDEO_DIR_REF -wget -q -m -nH --no-parent --cut-dirs=4 --reject "*.gif" "$REFERENCE_DIR/video_refs/" -cd "$main_dir" -} - -url_arg=() - -#Parse arguments -for i in $* ; do - case $i in - "-hash") - generate_hash=1;; - "-play-all") - ;; - "-clean") - do_clean=1;; - "-clean-hash") - do_clean_hash=1;; - "-uirec") - global_test_ui=1;; - "-uiplay") - global_test_ui=2;; - -speed*) - speed="${i#-speed=}" - ;; - "-keep-avi") - ;; - "-videos") - store_video=1;; - "-keep-tmp") - keep_temp_dir=1;; - "-tmp") - keep_temp_dir=1;; - "-no-hash") - disable_hash=1;; - "-strict") - strict_mode=1;; - "-do-fuzz") - enable_fuzzing=1;; - -fuzzdur*) - fuzz_duration="${i#-fuzzdur=}" - ;; - "-fuzzall") - fuzz_all=1;; - "-keepfuzz") - no_fuzz_cleanup=1;; - "-sync-hash") - sync_hash - exit;; - "-git-hash") - sync_hash;; - "-sync-media") - sync_media;; - "-sync-refs") - sync_refs - exit;; - "-sync-before") - sync_media;; - "-check") - check_only=1;; - "-warn") - log_after_fail=1;; - "-track-stack") - track_stack=1;; - "-noplay") - ;; - "-play") - do_playback=1;; - -test*) - single_test_name="${i#-test=}" - ;; - "-v") - verbose=1;; - -p*) - gpac_profile="${i#-p=}" - ;; - "-precommit") - sync_media - sync_hash - log_after_fail=1 - ;; - "-h") - print_usage - exit;; - -*) - log $L_ERR "Unknown Option \"$i\" - check usage (-h)" - exit;; - *) - url_arg+=("$i") - ;; -esac -done - -if [ $check_only != 0 ] ; then - do_clean_hash=0 - do_clean=0 - global_test_ui=0 -fi - -#Clean all hashes and reference videos -if [ $do_clean_hash != 0 ] ; then - - #force cleaning as well - do_clean=1 - - #when using specific scripts, cleanup will be done in test_begin() - if [ "${#url_arg[@]}" -eq 0 ] ; then - read -p "This will remove all referenced videos and hashes. Are you sure (y/n)?" choice - if [ $choice != "y" ] ; then - log $L_ERR "Canceled" - exit - fi - log $L_INF "Deleting SHA-1 Hashes" - rm -rf $HASH_DIR/* 2> /dev/null - rm -rf $VIDEO_DIR_REF/* 2> /dev/null - fi -fi - -#Clean all cached results and generated videos -if [ $do_clean != 0 ] ; then - rm -f $ALL_REPORTS > /dev/null - rm -f $ALL_LOGS > /dev/null - rm -rf $INTERN_TEMP_DIR/* 2> /dev/null - if [ "${#url_arg[@]}" -eq 0 ] ; then - echo "Deleting cache (logs, stats and videos)" - rm -rf $LOGS_DIR/* > /dev/null - rm -rf $VIDEO_DIR/* 2> /dev/null - exit - fi -fi - -log $L_INF "Checking test suite config" - -if [ $generate_hash = 0 ] ; then - if [ ! "$(ls -A $HASH_DIR)" ]; then - disable_hash=1 - log $L_WAR "- Reference hashes unavailable - you may sync them using -sync-hash - skipping hash tests" - else - log $L_INF "- Reference hashes available - enabling hash tests" - fi -fi - -if [ ! -e $EXTERNAL_MEDIA_DIR ] ; then -EXTERNAL_MEDIA_AVAILABLE=0 -elif [ ! -e $EXTERNAL_MEDIA_DIR/counter ] ; then -EXTERNAL_MEDIA_AVAILABLE=0 -fi - -if [ $EXTERNAL_MEDIA_AVAILABLE = 0 ] ; then - log $L_WAR "- External media dir unavailable - you may sync it using -sync-media" -else - log $L_INF "- External media dir available" -fi - -#test for GNU time -$GNU_TIME ls > /dev/null 2>&1 -res=$? -if [ $res != 0 ] ; then -log $L_ERR "GNU time not found (ret $res) - exiting" -exit 1 -fi - -#test for GNU date -$GNU_DATE > /dev/null 2>&1 -res=$? -if [ $res != 0 ] ; then -log $L_ERR "GNU date not found (ret $res) - exiting" -exit 1 -fi - -#test for timeout -$GNU_TIMEOUT 1.0 ls > /dev/null 2>&1 -res=$? -if [ $res != 0 ] ; then - log $L_ERR "GNU timeout not found (ret $res) - some tests may hang forever ..." - enable_timeout=0 - if [ $enable_fuzzing != 0 ] ; then - log $L_ERR "GNU timeout not found - disabling fuzzing" - enable_fuzzing=0 - fi -else -enable_timeout=1 -fi - - -if [ $check_only = 0 ] ; then - -#check MP4Box, gpac and MP4Client (use default args, not custum ones because of -mem-track) -MP4Box -h > /dev/null 2>&1 -res=$? -if [ $res != 0 ] ; then -log $L_ERR "MP4Box not found (ret $res) - exiting" -exit 1 -fi - -GPAC_OSTYPE="unknown" - -gpac -h > /dev/null 2>&1 -res=$? -if [ $res != 0 ] ; then -log $L_ERR "gpac not found (ret $res) - exiting" -#exit 1 -else - bininfo=`gpac -h bin 2>&1` - config=`echo $bininfo | grep GPAC_64` - if [ -z "$config" ] ; then - bits=32 - else - bits=64 - fi - - config=`echo $bininfo | grep GPAC_CONFIG_LINUX` - if [ -n "$config" ] ; then - GPAC_OSTYPE="lin$bits" - else - config=`echo $bininfo | grep GPAC_CONFIG_DARWIN` - if [ -n "$config" ] ; then - GPAC_OSTYPE="osx$bits" - else - config=`echo $bininfo | grep GPAC_CONFIG_WIN` - if [ -n "$config" ] ; then - GPAC_OSTYPE="win$bits" - fi - fi - fi -fi - -#check mem tracking is supported -res=`MP4Box -mem-track -h 2>&1 | grep "WARNING"` -if [ -n "$res" ]; then - log $L_WAR "- GPAC not compiled with memory tracking" -else - log $L_INF "- Enabling memory-tracking" - if [ $track_stack = 1 ]; then - base_args="$base_args -mem-track-stack" - log_after_fail=1 - else - base_args="$base_args -mem-track" - fi -fi - - -#check MP4Client -if [ $MP4CLIENT_NOT_FOUND = 0 ] && [ $do_clean = 0 ] && [ $global_test_ui != 0 ] ; then - MP4Client -run-for 0 2> /dev/null - res=$? - if [ $res != 0 ] ; then - # to remove when travis is ready to execute playback tests - MP4CLIENT_NOT_FOUND=1 - echo "" - log $L_WAR "WARNING: MP4Client not found (ret $res) - launch results:" - MP4Client -run-for 0 - res=$? - if [ $res = 0 ] ; then - log $L_INF "MP4Client returned $res on second run - all playback tests ready but still disabled" - else - echo "** MP4Client returned $res - disabling all playback tests - dumping GPAC config file **" - cat $HOME/.gpac/GPAC.cfg - echo "** End of dump **" - MP4CLIENT_NOT_FOUND=1 - fi - fi -fi - -fi -#end check_only - - -#check for afl-fuzz -if [ $enable_fuzzing != 0 ] ; then - log $L_INF "Checking for afl-fuzz" - command -v afl-fuzz >/dev/null 2>&1 - if [ $? != 0 ] ; then - log $L_WAR "afl-fuzz not found - disabling fuzzing" - enable_fuzzing=0 - else - mkdir tmpafi - mkdir tmpafo - - echo "void" > tmpafi/void.mp4 - $GNU_TIMEOUT 3.0 afl-fuzz -d -i tmpafi -o tmpafo MP4Box -h > /dev/null - if [ $? != 0 ] ; then - log $L_WAR "afl-fuzz not properly configure:" - afl-fuzz -d -i tmpafi -o tmpafo MP4Box -h - exit - else - log $L_INF "afl-fuzz found and OK - enabling fuzzing with duration $fuzz_duration" - fi - rm -rf tmpaf* - fi -fi - -echo "" - -#reassign our default programs -MP4BOX="MP4Box -noprog -for-test $base_args" -GPAC="gpac $base_args -noprog -for-test -no-reassign" -MP4CLIENT="MP4Client -noprog -strict-error $base_args" - -if [ "$gpac_profile" != "" ] ; then -log $L_INF "GPAC profile: $gpac_profile" -MP4BOX="$MP4BOX -p=$gpac_profile" -GPAC="$GPAC -p=$gpac_profile" -MP4CLIENT="$MP4CLIENT -p=$gpac_profile" -fi - -$MP4BOX -version 2> $INTERN_TEMP_DIR/version.txt -VERSION="`head -1 $INTERN_TEMP_DIR/version.txt | cut -d ' ' -f 5-` " -rm $INTERN_TEMP_DIR/version.txt -log $L_INF "GPAC version: $VERSION" -log $L_INF "" - -#reset all the possible return values -reset_stat () -{ - EXECUTION_STATUS="N/A" - RETURN_VALUE="N/A" - MEM_TOTAL_AVG="N/A" - MEM_RESIDENT_AVG="N/A" - MEM_RESIDENT_MAX="N/A" - CPU_PERCENT="N/A" - CPU_ELAPSED_TIME="N/A" - CPU_USER_TIME="N/A" - CPU_KERNEL_TIME="N/A" - PAGE_FAULTS="N/A" - FILE_INPUTS="N/A" - SOCKET_MSG_REC="N/A" - SOCKET_MSG_SENT="N/A" -} - -#begin a test with name $1 and using hashes called $1-$2 ... $1-$N -test_begin () -{ - if [ $# -gt 1 ] ; then - log $L_ERR "> in script $current_script line $BASH_LINENO" - log $L_ERR " @test_begin takes only two arguments - wrong call (first arg is $1)" - fi - - test_skip=0 - result="" - TEST_NAME=$1 - fuzz_test=$fuzz_all - is_fuzz_test=0 - reference_hash_valid="$HASH_DIR/$TEST_NAME-valid-hash" - - log $L_DEB "Starting test $TEST_NAME" - - TEMP_DIR=$INTERN_TEMP_DIR - - report="$TEMP_DIR/$TEST_NAME-temp.txt" - LOGS="$LOGS_DIR/$TEST_NAME-logs.txt-new" - final_report="$LOGS_DIR/$TEST_NAME-passed.xml" - test_ui=0 - - - if [ $do_clean != 0 ] ; then - if [ $do_clean_hash != 0 ] ; then - rm -rf $HASH_DIR/$TEST_NAME* 2> /dev/null - rm -rf $VIDEO_DIR_REF/$TEST_NAME* 2> /dev/null - rm -rf $reference_hash_valid 2> /dev/null - fi - rm -rf $LOGS_DIR/$TEST_NAME* > /dev/null - rm -rf $VIDEO_DIR/$TEST_NAME* 2> /dev/null - test_skip=1 - return - fi - - if [ $check_only != 0 ] ; then - test_ui=0 - report="$TEMP_DIR/$TEST_NAME.test" - if [ -f $report ] ; then - log $L_ERR "Test $TEST_NAME already exists - please fix ($current_script)" - rm -rf $TEMP_DIR/* 2> /dev/null - exit - fi - echo "" > $report - test_skip=1 - return - fi - - if [ $keep_temp_dir != 0 ] ; then - TEMP_DIR="$INTERN_TEMP_DIR/$TEST_NAME" - if [ ! -e $TEMP_DIR ] ; then - mkdir $TEMP_DIR - fi - fi - - #reset defaults - dump_dur=$DEF_DUMP_DUR - dump_size=$DEF_DUMP_SIZE - test_timeout=$DEF_TIMEOUT - - test_skip=0 - single_test=0 - - test_args="$@" - test_nb_args=$# - skip_play_hash=0 - subtest_idx=0 - nb_subtests=0 - test_ui=$global_test_ui - - test_stats="$LOGS_DIR/$TEST_NAME-stats.sh" - - #if error in strict mode, mark the test as skippable using value 2 - if [ $strict_mode = 1 ] ; then - if [ -f $TEST_ERR_FILE ] ; then - test_skip=2 - fi - fi - -# if [ $MP4CLIENT_NOT_FOUND = 0 ] ; then -# skip_play_hash=1 -# fi - - if [ $generate_hash = 1 ] ; then - #skip test only if reference hash is marked as valid - if [ -f "$reference_hash_valid" ] ; then - log $L_DEB "Reference hash found for test $TEST_NAME - skipping hash generation" - test_skip=1 - fi - elif [ $test_ui != 0 ] ; then - test_skip=0 - elif [ $test_skip = 0 ] ; then - #skip test only if final report is present (whether we generate hashes or not) - if [ -f "$final_report" ] ; then - if [ -f "$test_stats" ] ; then - log $L_DEB "$TEST_NAME already passed - skipping" - test_skip=1 - else - log $L_WAR "$TEST_NAME already passed but missing stats.sh - regenerating" - fi - fi - fi - - if [ "$single_test_name" != "" ] && [ "$single_test_name" != "$TEST_NAME" ] ; then - test_ui=0 - test_skip=1 - fi - - if [ $test_skip != 0 ] ; then - #stats.sh may be missing when generating hashes and that's not an error - if [ -f "$test_stats" ] ; then - has_skip=`grep -w "TEST_SKIP" $test_stats` - - if [ "$has_skip" = "" ]; then - echo "TEST_SKIP=$test_skip" >> $test_stats - fi - fi - test_skip=1 - elif [ $test_ui != 0 ] ; then - #in UI test mode don't check cache status, always run the tests - test_skip=1 - else - echo "*** $TEST_NAME logs (GPAC version $VERSION) - test date $(date '+%d/%m/%Y %H:%M:%S') ***" > $LOGS - echo "" >> $LOGS - fi - - - rules_sh=$RULES_DIR/$TEST_NAME.sh - if [ -f $rules_sh ] ; then - source $rules_sh - fi - - if [ $test_skip != 0 ] ; then - TEMP_DIR=$INTERN_TEMP_DIR - fi -} - -mark_test_error () -{ - if [ $strict_mode = 1 ] ; then - echo "" > $TEST_ERR_FILE - log $L_ERR "Error test $TEST_NAME subtest $SUBTEST_NAME - aborting" - fi -} - - -#ends test - gather all logs/stats produced and generate report -test_end () -{ - #wait for all sub-tests to complete (some may use subshells) - wait - - TEMP_DIR=$INTERN_TEMP_DIR - - if [ $# -gt 0 ] ; then - log $L_ERR "> in test $TEST_NAME in script $current_script line $BASH_LINENO" - log $L_ERR " @test_end takes no argument - wrong call" - fi - - if [ $test_skip = 1 ] ; then - return - fi - - test_stats="$LOGS_DIR/$TEST_NAME-stats.sh" - echo "" > $test_stats - stat_xml_temp="$TEMP_DIR/$TEST_NAME-statstemp.xml" - echo "" > $stat_xml_temp - - test_fail=0 - test_leak=0 - test_exec_na=0 - nb_subtests=0 - nb_test_hash=0 - nb_hash_fail=0 - nb_hash_missing=0 - - if [ "$result" != "" ] ; then - test_fail=1 - fi - -# makes glob on non existing files to expand to null -# enabling loops on nonexisting* to be empty -shopt -s nullglob - - #gather all stats per subtests - for i in $TEMP_DIR/$TEST_NAME-stats-*.sh ; do - reset_stat - RETURN_VALUE=0 - SUBTEST_NAME="" - COMMAND_LINE="" - SUBTEST_IDX=0 - - nb_subtests=$((nb_subtests + 1)) - - source $i - - echo " " >> $stat_xml_temp - - echo " $COMMAND_LINE" >> $stat_xml_temp - echo " " >> $stat_xml_temp - - test_ok=1 - - if [ $RETURN_VALUE -eq 1 ] ; then - result="$SUBTEST_NAME:Fail $result" - test_ok=0 - test_fail=$((test_fail + 1)) - elif [ $RETURN_VALUE -eq 2 ] ; then - result="$SUBTEST_NAME:MemLeak $result" - test_ok=0 - test_leak=$((test_leak + 1)) - elif [ $RETURN_VALUE != 0 ] ; then - if [ $enable_timeout != 0 ] && [ $RETURN_VALUE = 124 ] ; then - result="$SUBTEST_NAME:Timeout $result" - else - result="$SUBTEST_NAME:Fail(ret code $RETURN_VALUE) $result" - fi - test_ok=0 - test_fail=$((test_fail + 1)) - fi - - if [ $log_after_fail = 1 ] ; then - if [ $test_ok = 0 ] ; then - sublog=$LOGS_DIR/$TEST_NAME-logs-$SUBTEST_IDX-$SUBTEST_NAME.txt - if [ -f $sublog ] ; then - cat $sublog 2> stderr - fi - fi - fi - rm -f $i > /dev/null - done - - #gather all hashes for this test - for i in $TEMP_DIR/$TEST_NAME-stathash-*.sh ; do - if [ -f $i ] ; then - HASH_TEST="" - HASH_NOT_FOUND=0 - HASH_FAIL=0 - SRC_NOT_FOUND=0 - - source $i - nb_test_hash=$((nb_test_hash + 1)) - if [ $HASH_NOT_FOUND -eq 1 ] ; then - result="$HASH_TEST:HashNotFound $result" - nb_hash_missing=$((nb_hash_missing + 1)) - test_exec_na=$((test_exec_na + 1)) - elif [ $SRC_NOT_FOUND -eq 1 ] ; then - result="$HASH_TEST:HashSourceNotFound $result" - test_ok=0 - nb_hash_fail=$((nb_hash_fail + 1)) - test_exec_na=$((test_exec_na + 1)) - elif [ $HASH_FAIL -eq 1 ] ; then - result="$HASH_TEST:HashFail $result" - test_ok=0 - nb_hash_fail=$((nb_hash_fail + 1)) - test_exec_na=$((test_exec_na + 1)) - fi - fi - rm -f $i > /dev/null - done - - if [ "$result" = "" ] ; then - result="OK" - fi - - if [ ! -f $TEST_ERR_FILE ] ; then - if [ $generate_hash = 1 ] ; then - log $L_DEB "Test $TEST_NAME $nb_subtests subtests and $nb_test_hash hashes" - nb_hashes=$((nb_test_hash + nb_test_hash)) - #only allow no hash if only one subtest or fuzzing - if [ $subtest_idx -gt 1 ] && [ $nb_hashes -lt $subtest_idx ] && [ $is_fuzz_test = 0 ]; then - log $L_ERR "Test $TEST_NAME has too few hash tests: $nb_hashes for $nb_subtests subtests - please fix" - result="NOT ENOUGH HASHES" - else - echo "ok" > $reference_hash_valid - fi -# if [ $nb_test_hash -gt 15 ] ; then -# log $L_WAR "Test $TEST_NAME has too many subtests with hashes ($nb_test_hash), not efficient for hash generation - consider rewriting $current_script" -# fi - fi - fi - - - echo " " > $report - cat $stat_xml_temp >> $report - rm -f $stat_xml_temp > /dev/null - echo " " >> $report - - echo "TEST_FAIL=$test_fail" >> $test_stats - echo "TEST_EXEC_NA=$test_exec_na" >> $test_stats - echo "SUBTESTS_LEAK=$test_leak" >> $test_stats - echo "NB_HASH_SUBTESTS=$nb_test_hash" >> $test_stats - echo "NB_HASH_SUBTESTS_MISSING=$nb_hash_missing" >> $test_stats - echo "NB_HASH_SUBTESTS_FAIL=$nb_hash_fail" >> $test_stats - - # list all logs files - for i in $LOGS_DIR/$TEST_NAME-logs-*.txt; do - cat $i >> $LOGS - done - rm -f $LOGS_DIR/$TEST_NAME-logs-*.txt > /dev/null - - echo "NB_SUBTESTS=$nb_subtests" >> $test_stats - - if [ "$result" == "OK" ] ; then - mv $report "$LOGS_DIR/$TEST_NAME-passed-new.xml" - - echo "$TEST_NAME: $result" - else - mv $report "$LOGS_DIR/$TEST_NAME-failed.xml" - mark_test_error - - log $L_ERR "$TEST_NAME: $result" - fi - -shopt -u nullglob -} - -do_fuzz() -{ - cmd="$2" - fuzz="@@" - fuzz_cmd=${cmd/$1/$fuzz} - file_ext="${1##*.}" - orig_path=`pwd` - tests_gen=0 - log $L_DEB "Fuzzing file $1 with command line $fuzz_cmd" - - fuzz_res_dir="$LOCAL_OUT_DIR/fuzzing/$TEST_NAME_$SUBTEST_NAME/$fuzz_sub_idx" - fuzz_temp_dir="$LOCAL_OUT_DIR/fuzzing/$TEST_NAME_$SUBTEST_NAME/$fuzz_sub_idx/temp" - mkdir -p "$fuzz_res_dir" - mkdir -p "$fuzz_temp_dir/in/" - mkdir -p "$fuzz_temp_dir/out/" - - cp $1 "$fuzz_temp_dir/in/" - cd $fuzz_temp_dir - - $GNU_TIMEOUT $fuzz_duration afl-fuzz -d -i "in/" -o "out/" $fuzz_cmd - if [ $? = 0 ] ; then - if [ $no_fuzz_cleanup = 0 ] ; then - #rename all crashes and hangs - cd out/crashes - ls | cat -n | while read n f; do mv "$f" "$fuzz_res_dir/crash_$n.$file_ext"; done - cd ../hangs - ls | cat -n | while read n f; do mv "$f" "$fuzz_res_dir/hang_$n.$file_ext"; done - cd ../.. - rm -f "$fuzz_res_dir/readme.txt" - fi - fi - - cd "$orig_path" - - if [ $no_fuzz_cleanup = 0 ] ; then - rm -rf $fuzz_temp_dir - - tests_gen=`ls $fuzz_res_dir | wc -w` - if [ $no_fuzz_cleanup != 0 ] ; then - tests_gen=1 - fi - - if [ $tests_gen = 0 ] ; then - rm -rf $fuzz_res_dir - else - echo "Generated with afl-fuzz -d $fuzz_cmd" > "$fuzz_res_dir/readme.txt" - fi - fi -} - -#@do_test execute the command line given $1 using GNU time and store stats with return value, command line ($1) and subtest name ($2) -ret=0 -do_test () -{ - skip_next_hash_test=0 - - if [ $# -gt 2 ] ; then - log $L_ERR "> in test $TEST_NAME in script $current_script line $BASH_LINENO" - log $L_ERR " @do_test takes only two arguments - wrong call (first arg $1)" - fi - - if [ $strict_mode = 1 ] ; then - if [ -f $TEST_ERR_FILE ] ; then - return - fi - fi - - if [ $test_skip = 1 ] ; then - return - fi - - if [ $MP4CLIENT_NOT_FOUND = 1 ] ; then - case $1 in MP4Client*) - return - esac - fi - - log L_DEB "executing $1" - - subtest_idx=$((subtest_idx + 1)) - - log_subtest="$LOGS_DIR/$TEST_NAME-logs-$subtest_idx-$2.txt" - stat_subtest="$INTERN_TEMP_DIR/$TEST_NAME-stats-$subtest_idx-$2.sh" - SUBTEST_NAME=$2 - - if [ $fuzz_test = 1 ] ; then - is_fuzz_test=1 - fi - - if [ $enable_fuzzing = 0 ] ; then - fuzz_test=0 - fi - - #fuzzing on: check all args, detect ones matching input files in $maindir and fuzz them - #note that this is not perfect since the command line may modify an existing MP4 - #so each successfull afl-fuzz test (not call!) will modify the input... - if [ $fuzz_test != 0 ] ; then - fuzz_dir="$LOCAL_OUT_DIR/fuzzing/$TEST_NAME_$SUBTEST_NAME/" - mkdir -p fuzz_dir - fuzz_sub_idx=1 - for word in $1 ; do - is_file_arg=0 - case "$word" in - $main_dir/*) - is_file_arg=1;; - esac - - if [ $is_file_arg != 0 ] ; then - fuzz_src=${word%:*} - if [ -f $fuzz_src ] ; then - do_fuzz "$fuzz_src" "$1" - fuzz_sub_idx=$((fuzz_sub_idx + 1)) - fi - fi - done - - if [ $no_fuzz_cleanup = 0 ] ; then - crashes=`ls $fuzz_dir | wc -w` - if [ $crashes = 0 ] ; then - rm -rf $fuzz_dir - fi - fi - - #we still run the subtest in fuzz mode, since further subtests may use the output of this test - fi - -echo "" > $log_subtest -echo "*** Subtest \"$2\": executing \"$1\" ***" >> $log_subtest - -timeout_args="" -if [ $enable_timeout != 0 ] ; then -timeout_args="$GNU_TIMEOUT $test_timeout" -fi - -$UNBUFFER $timeout_args $GNU_TIME -o $stat_subtest -f ' EXECUTION_STATUS="OK"\n RETURN_STATUS=%x\n MEM_TOTAL_AVG=%K\n MEM_RESIDENT_AVG=%t\n MEM_RESIDENT_MAX=%M\n CPU_PERCENT=%P\n CPU_ELAPSED_TIME=%E\n CPU_USER_TIME=%U\n CPU_KERNEL_TIME=%S\n PAGE_FAULTS=%F\n FILE_INPUTS=%I\n SOCKET_MSG_REC=%r\n SOCKET_MSG_SENT=%s' $1 >> $log_subtest 2>&1 -rv=$? - -echo "SUBTEST_NAME=$2" >> $stat_subtest -echo "SUBTEST_IDX=$subtest_idx" >> $stat_subtest - -#regular error, check if this is a negative test. -if [ $rv -eq 1 ] ; then - if [ $single_test = 1 ] ; then - negative_test_stderr=$RULES_DIR/$TEST_NAME-stderr.txt - else - negative_test_stderr=$RULES_DIR/$TEST_NAME-$2-stderr.txt - fi - if [ -f $negative_test_stderr ] ; then - #look for all lines in -stderr file, if one found consider this a success - while read line ; do - res_err=`grep -o "$line" $log_subtest` - if [ -n "$res_err" ]; then - echo "Negative test detected, reverting to success (found \"$res_err\" in stderr)" >> $log_subtest - rv=0 - skip_next_hash_test=1 - echo "" > $stat_subtest - break - fi - #remove windows style endlines as they may cause some problems - #also remove empty lines otherwise grep always matches - done < <(tr -d '\r' <$negative_test_stderr | sed '/^$/d' ) - fi -fi - -#override generated stats if error, since gtime may put undesired lines in output file which would break sourcing -if [ $rv != 0 ] ; then -echo "SUBTEST_NAME=$2" > $stat_subtest -echo "SUBTEST_IDX=$subtest_idx" >> $stat_subtest -mark_test_error -fi - -echo "RETURN_VALUE=$rv" >> $stat_subtest -echo "COMMAND_LINE=\"$1\"" >> $stat_subtest - -echo "" >> $log_subtest -ret=$rv -} -#end do_test - -#do_play_test: playback the input video (arg2) and audio (arg3) to vout/aout, and produces the MP4 file for these files -do_play_test () -{ - if [ $# -gt 3 ] ; then - log $L_ERR "> in test $TEST_NAME in script $current_script line $BASH_LINENO" - log $L_ERR " @do_play_test takes only 3 arguments - wrong call (first arg $1)" - return - fi - name=$1 - - audio_args="" - if [ $# -gt 2 ] ; then - audio_args=$3 - fi - - if [ $do_playback = 1 ] ; then - args="" - if [ "$2" != "" ] ; then - args="$args -i $2 vout" - fi - if [ "$audio_args" != "" ] ; then - if [ "$audio_args" != "-" ] ; then - args="$args -i $audio_args aout" - else - args="$args aout" - fi - fi - - if [ "$args" = "" ] ; then - return - fi - $GPAC $args 2> /dev/null - fi - - - if [ $store_video = 1 ] ; then - args="" - if [ "$2" != "" ] ; then - args="$args -i $2 enc:FID=V:c=avc:b=500k:pfmt=yuv" - fi - if [ "$audio_args" != "" ] ; then - if [ "$audio_args" != "-" ] ; then - args="$args -i $audio_args" - fi - args="$args enc:FID=A:c=aac:b=64k" - fi - - if [ "$args" = "" ] ; then - return - fi - name=$(basename $1) - vid_name="$VIDEO_DIR/$name.mp4" - $GPAC $args -o $vid_name:SID=V,A 2> /dev/null - fi -} - -#end do_play_test - -#@do_hash_test: generates a hash for $1 file , compare it to HASH_DIR/$TEST_NAME$2.hash -do_hash_test () -{ - if [ $skip_next_hash_test = 1 ] ; then - skip_next_hash_test=0 - return - fi - - if [ $skip_next_hash_test = 1 ] ; then - skip_next_hash_test=0 - return - fi - - if [ $# -gt 3 ] ; then - log $L_ERR "> in test $TEST_NAME in script $current_script line $BASH_LINENO" - log $L_ERR " @do_hash_test takes only three argument - wrong call (first arg is $1)" - fi - if [ $strict_mode = 1 ] ; then - if [ -f $TEST_ERR_FILE ] ; then - return - fi - fi - - is_bin=0 - if [ $# -gt 2 ] ; then - is_bin=$3 - fi - - if [ $test_skip = 1 ] ; then - return - fi - log L_DEB "Generating hash for $1" - - if [ $disable_hash = 1 ] ; then - return - fi - - STATHASH_SH="$INTERN_TEMP_DIR/$TEST_NAME-stathash-$2.sh" - - test_hash="$INTERN_TEMP_DIR/$TEST_NAME-$2-test.hash" - ref_hash="$HASH_DIR/$TEST_NAME-$2.hash" - - echo "HASH_TEST=$2" > $STATHASH_SH - - #redefine log subtest var using the hash name in case the subtest was a subscript (do_test &) - log_subt="$LOGS_DIR/$TEST_NAME-logs-$subtest_idx-$2.txt" - - echo "Computing $1 ($2) hash: " >> $log_subt - file_to_hash="$1" - - if [ $is_bin != 1 ] ; then - # for text files, we remove potential CR chars - # to prevent having different hashes on different platforms - if [ -n "$(file -b $1 | grep text)" ] || [ ${1: -4} == ".lsr" ] || [ ${1: -4} == ".svg" ] ; then - file_to_hash="to_hash_$(basename $1)" - if [ -f $1 ]; then - tr -d '\r' < "$1" > "$file_to_hash" - fi - fi - fi - - $MP4BOX -hash -std $file_to_hash > $test_hash 2>> $log_subt - - if [ "$file_to_hash" != "$1" ] && [ -f "$file_to_hash" ]; then - rm "$file_to_hash" - fi - - if [ $generate_hash = 0 ] ; then - if [ ! -f $1 ] ; then - echo "SRC_NOT_FOUND=1" >> $STATHASH_SH - echo "HASH_FAIL=0" >> $STATHASH_SH - echo "not found $1" - return - fi - - echo "SRC_NOT_FOUND=0" >> $STATHASH_SH - if [ ! -f $ref_hash ] ; then - echo "HASH_NOT_FOUND=1" >> $STATHASH_SH - return - fi - - echo "HASH_NOT_FOUND=0" >> $STATHASH_SH - - $DIFF $test_hash $ref_hash > /dev/null - rv=$? - - if [ $rv != 0 ] ; then - hashres=0 - fhash=`hexdump -ve '1/1 "%.2X"' $ref_hash` - echo "Hash fail, ref hash $ref_hash was $fhash" >> $log_subt - shopt -s nullglob - for alt_ref in "$ref_hash-alt"* ; do - $DIFF $test_hash $alt_ref > /dev/null - rv_alt=$? - if [ $rv_alt != 0 ] ; then - fhash=`hexdump -ve '1/1 "%.2X"' $alt_ref` - echo "Hash alt fail, alt ref $alt_ref was $fhash" >> $log_subt - else - hashres=1 - echo "Hash alt OK with alt ref $alt_ref" >> $log_subt - break - fi - done - shopt -u nullglob - if [ $hashres != 0 ] ; then - echo "Hash OK for $1" >> $log_subt - echo "HASH_FAIL=0" >> $STATHASH_SH - else - echo "HASH_FAIL=1" >> $STATHASH_SH - fi - else - echo "Hash OK for $1" >> $log_subt - echo "HASH_FAIL=0" >> $STATHASH_SH - fi - rm $test_hash - - else - mv $test_hash $ref_hash - fi -} -#end do_hash_test - -do_hash_test_bin () -{ - do_hash_test $1 $2 1 -} - -#compare hashes of $1 and $2, return 0 if OK, error otherwise -do_compare_file_hashes () -{ - if [ $# -gt 2 ] ; then - log $L_ERR "> in test $TEST_NAME in script $current_script line $BASH_LINENO" - log $L_ERR " @do_compare_file_hashes takes only two arguments - wrong call (first arg is $1)" - fi -test_hash_first="$INTERN_TEMP_DIR/$TEST_NAME-$(basename $1).hash" -test_hash_second="$INTERN_TEMP_DIR/$TEST_NAME-$(basename $2).hash" - -$MP4BOX -hash -std $1 > $test_hash_first 2> /dev/null -$MP4BOX -hash -std $1 > $test_hash_second 2> /dev/null -$DIFF $test_hash_first $test_hash_first > /dev/null - -rv=$? -if [ $rv != 0 ] ; then -echo "Hash fail between $1 and $2" >> $log_subtest -else -echo "Same Hash for $1 and $2" >> $log_subtest -fi - -rm $test_hash_first -rm $test_hash_second - -return $rv - -} -#end do_compare_file_hashes - - -#@single_test: performs a single test without hash with $1 command line and $2 test name -single_test () -{ - if [ $# -gt 2 ] ; then - log $L_ERR "> in test $TEST_NAME in script $current_script line $BASH_LINENO" - log $L_ERR " @single_test takes only two arguments - wrong call (first arg is $1)" - fi -test_begin "$2" -if [ $test_skip = 1 ] ; then -return -fi -single_test=1 -do_test "$1" "single" -test_end -} - - -#@test_ui_test: if $test_ui is 1 records user input on $1 playback (10 sec) and stores in $RULES_DIR/$1-ui.xml. If $test_ui is 2, plays back the recorded stream -do_ui_test() -{ - if [ $# -gt 2 ] ; then - log $L_ERR "> in test $TEST_NAME in script $current_script line $BASH_LINENO" - log $L_ERR " @test_ui_test takes one or two arguments - wrong call (first arg is $1)" - fi - - if [ $test_ui = 0 ] ; then - return - fi - - if [ "$single_test_name" != "" ] && [ "$single_test_name" != "$TEST_NAME" ] ; then - log $L_DEB "skiping ui test $TEST_NAME" - return - fi - - src=$1 - if [ $# -gt 1 ] ; then - FULL_SUBTEST="$TEST_NAME-$2" - else - FULL_SUBTEST="$TEST_NAME" - fi - - SUBTEST=$2 - ui_stream=$RULES_DIR/$FULL_SUBTEST-ui.xml - - if [ $test_ui = 1 ] ; then - if [ -f $ui_stream ]; then - log $L_DEB "User input trace present for $FULL_SUBTEST - skipping" - return - fi - echo "Recording user input for $FULL_SUBTEST" - echo "Recording user input for $FULL_SUBTEST (file $src) into trace $ui_stream" >> $ALL_LOGS - $MP4CLIENT -run-for $dump_dur -size $dump_size $src -no-save -opt Validator:Mode=Record -opt Validator:Trace=$ui_stream 2>> $ALL_LOGS - rv=$? - else - if [ ! -f $ui_stream ]; then - log $L_WAR "User input trace not found for $FULL_SUBTEST - skipping playback" - return - fi - echo "Playing user input for $FULL_SUBTEST" - echo "Playing user input for $FULL_SUBTEST (file $src) from trace $ui_stream" >> $ALL_LOGS - dur=$(($dump_dur / $speed)) - $MP4CLIENT -run-for $dur -size $dump_size $src -speed $speed -no-save -opt Validator:Mode=Play -opt Validator:Trace=$ui_stream 2>> $ALL_LOGS - rv=$? - fi - #regular error, check if this is a negative test. - if [ $rv != 0 ] ; then - log $L_ERR "Error executing UI test for $FULL_SUBTEST (source file $src - test name $TEST_NAME)" -# if [ $strict_mode = 1 ] ; then -# exit -# fi - fi -} -#end test_ui_test - - -#start of our tests -start=`$GNU_DATE +%s%N` -start_date="$(date '+%d/%m/%Y %H:%M:%S')" - -if [ $generate_hash = 1 ] ; then - log $L_INF "Generating Test Suite SHA-1 Hashes" -elif [ $do_clean = 1 ] ; then - log $L_INF "Cleaning Test Suite" -elif [ $check_only = 1 ] ; then - log $L_INF "Checking Test Suite Names" -elif [ $global_test_ui = 1 ] ; then - log $L_INF "Generating User Input traces" -elif [ $global_test_ui = 2 ] ; then - log $L_INF "Playing User Input traces" -else - log $L_INF "Evaluating Test Suite" -fi - -print_end() -{ -end=`$GNU_DATE +%s%N` -runtime=$((end-start)) - -ms=$(($runtime / 1000000)) -secs=$(($ms / 1000)) -ms=$(($ms - $secs*1000)) -h=$(($secs / 3600)) -secs=$(($secs - $h*3600)) -m=$(($secs / 60)) -secs=$(($secs - $m*60)) - -printf "$1 in %02d:%02d:%02d:%03d\n" $h $m $secs $ms -} - -#gather all tests reports and build our final report -finalize_make_test() -{ - -#we are cleaning, nothing to do -if [ $do_clean != 0 ] ; then - print_end "Cleanup done" - return -fi - -#ui tests nothing to do -if [ $global_test_ui != 0 ] ; then - print_end "UI Tests done" - return -fi - -#create logs and final report -echo "Logs for GPAC test suite - execution date $start_date" > $ALL_LOGS - -echo '' > $ALL_REPORTS -echo '' >> $ALL_REPORTS -echo "" >> $ALL_REPORTS - - -if [ $keep_temp_dir != 1 ] ; then - rm -rf $TEMP_DIR/* 2> /dev/null -fi - -#count all tests using generated -stats.sh -TESTS_SKIP=0 -TESTS_TOTAL=0 -TESTS_DONE=0 -TESTS_PASSED=0 -TESTS_FAILED=0 -TESTS_LEAK=0 -TESTS_EXEC_NA=0 - -SUBTESTS_FAIL=0 -SUBTESTS_EXEC_NA=0 -SUBTESTS_DONE=0 -SUBTESTS_LEAK=0 -SUBTESTS_HASH=0 -SUBTESTS_HASH_FAIL=0 -SUBTESTS_HASH_MISSING=0 - -for i in $LOGS_DIR/*-stats.sh ; do -if [ -f $i ] ; then - -#reset stats -TEST_SKIP=0 -TEST_EXEC_NA=0 -SUBTESTS_LEAK=0 -NB_HASH_SUBTESTS=0 -NB_HASH_SUBTESTS_MISSING=0 -NB_HASH_SUBTESTS_FAIL=0 -NB_SUBTESTS=0 - -#load stats -source $i - -#test not run due to error in strict mode -if [ $TEST_SKIP = 2 ] ; then -rm -f $i > /dev/null -continue; -fi - -TESTS_TOTAL=$((TESTS_TOTAL + 1)) -if [ $TEST_SKIP = 0 ] ; then - TESTS_DONE=$((TESTS_DONE + 1)) -else - TESTS_SKIP=$((TESTS_SKIP + $TEST_SKIP)) -fi - -if [ $TEST_FAIL = 0 ] ; then - if [ $TEST_EXEC_NA = 0 ] && [ $SUBTESTS_LEAK = 0 ]; then - TESTS_PASSED=$((TESTS_PASSED + 1)) - else - rm -f $i > /dev/null - if [ $TEST_EXEC_NA != 0 ] ; then - TESTS_EXEC_NA=$((TESTS_EXEC_NA + 1)) - else - TESTS_LEAK=$((TESTS_LEAK + 1)) - fi - fi -else - TESTS_FAILED=$((TESTS_FAILED + 1)) - rm -f $i > /dev/null -fi - - -SUBTESTS_FAIL=$((SUBTESTS_FAIL + $TEST_FAIL)) -SUBTESTS_EXEC_NA=$((SUBTESTS_EXEC_NA + $TEST_EXEC_NA)) -SUBTESTS_DONE=$((SUBTESTS_DONE + $NB_SUBTESTS)) -SUBTESTS_LEAK=$((SUBTESTS_LEAK + $SUBTESTS_LEAK)) -SUBTESTS_HASH=$((SUBTESTS_HASH + $NB_HASH_SUBTESTS)) -SUBTESTS_HASH_FAIL=$((SUBTESTS_HASH_FAIL + $NB_HASH_SUBTESTS_FAIL)) -SUBTESTS_HASH_MISSING=$((SUBTESTS_HASH_MISSING + $NB_HASH_SUBTESTS_MISSING)) - -fi - -done - -echo "" >> $ALL_REPORTS - -#gather all failed reports first -for i in $LOGS_DIR/*-failed.xml; do - if [ -f $i ] ; then - cat $i >> $ALL_REPORTS - echo "" >> $ALL_REPORTS - rm $i - fi -done - -#gather all new reports -for i in $LOGS_DIR/*-passed-new.xml; do - if [ -f $i ] ; then - cat $i >> $ALL_REPORTS - echo "" >> $ALL_REPORTS - #move new report to final name - n=${i%"-new.xml"} - n="$n.xml" - mv "$i" "$n" - fi -done - -echo '' >> $ALL_REPORTS - -#cat all logs -for i in $LOGS_DIR/*-logs.txt-new; do - if [ -f $i ] ; then - cat $i >> $ALL_LOGS - echo "" >> $ALL_LOGS - #move new report to final name - n=${i%".txt-new"} - n="$n.txt" - mv "$i" "$n" - fi -done - -if [ $TESTS_TOTAL = 0 ] ; then -log $L_INF "No tests executed" -else - - -pc1=$((100*TESTS_DONE/TESTS_TOTAL)) -pc2=$((100*TESTS_SKIP/TESTS_TOTAL)) -log $L_INF "Number of Tests $TESTS_TOTAL - $SUBTESTS_DONE subtests - Executed: $TESTS_DONE ($pc1 %) - Cached: $TESTS_SKIP ($pc2 %)" - - -if [ $TESTS_DONE = 0 ] ; then - TESTS_DONE=$TESTS_TOTAL -fi -if [ $SUBTESTS_DONE = 0 ] ; then - SUBTESTS_DONE=$TESTS_TOTAL -fi - - pc=$((100*TESTS_PASSED/TESTS_TOTAL)) - log $L_INF "Tests passed $TESTS_PASSED ($pc %) - $SUBTESTS_DONE sub-tests" - - # the follwing % are in subtests - if [ $SUBTESTS_FAIL != 0 ] ; then - pc=$((100*SUBTESTS_FAIL/SUBTESTS_DONE)) - log $L_ERR "Tests failed $TESTS_FAILED ($pc % of subtests)" - fi - - if [ $SUBTESTS_LEAK != 0 ] ; then - pc=$((100*SUBTESTS_LEAK/SUBTESTS_DONE)) - log $L_WAR "Tests Leaked $TESTS_LEAK ($pc % of subtests)" - fi - - if [ $SUBTESTS_EXEC_NA != 0 ] ; then - pc=$((100*SUBTESTS_EXEC_NA/SUBTESTS_DONE)) - log $L_WAR "Tests Unknown $TESTS_EXEC_NA ($pc % of subtests)" - fi - - if [ $SUBTESTS_HASH_FAIL != 0 ] ; then - pc=$((100*SUBTESTS_HASH_FAIL/SUBTESTS_DONE)) - log $L_WAR "Tests HASH total $SUBTESTS_HASH - fail $SUBTESTS_HASH_FAIL ($pc % of subtests)" - fi - - if [ $SUBTESTS_HASH_MISSING != 0 ] ; then - pc=$((100*SUBTESTS_HASH_MISSING/$SUBTESTS_HASH)) - log $L_WAR "Missing hashes $SUBTESTS_HASH_MISSING / $SUBTESTS_HASH ($pc % hashed subtests)" - fi - - -fi - -print_end "Generation done" - -} #end finalize_make_test - - - -# trap ctrl-c and generate reports -trap ctrl_c_trap INT - -ctrl_c_trap() { - echo "CTRL-C trapped - cleanup and building up reports" - local pids=$(jobs -pr) - [ -n "$pids" ] && kill $pids - finalize_make_test - exit -} - -# disable nullglobing in case sub-scripts aren't made for it -shopt -u nullglob - - -# by default run everything in scripts/ dir -scripts_torun="$SCRIPTS_DIR/*.sh" - -# if a subset of tests was provided, run only these -if [ "${#url_arg[@]}" -gt 0 ] ; then - scripts_torun="${url_arg[@]}" -fi - -#run our tests -for i in $scripts_torun ; do -if [ $verbose = 1 ] ; then - log $L_DEB "Source script: $i" -fi -current_script=$i -source $i -cd $main_dir -#break if error and error -if [ $strict_mode = 1 ] ; then - #wait for all tests to be done before checking error marker - wait - if [ -f $TEST_ERR_FILE ] ; then - break - fi -fi - -#cleanup temp dir -if [ $keep_temp_dir != 1 ] ; then - rm -rf $TEMP_DIR/* 2> /dev/null -fi - -done - - -#wait for all tests to be done, since some tests may use subshells -wait - -if [ $check_only != 0 ] ; then - rm -rf $TEMP_DIR/* 2> /dev/null - exit -fi - - -finalize_make_test - - - - diff --git a/tests/media/auxiliary_files/count_arabic.mp3 b/tests/media/auxiliary_files/count_arabic.mp3 deleted file mode 100644 index 12fbb2a419..0000000000 Binary files a/tests/media/auxiliary_files/count_arabic.mp3 and /dev/null differ diff --git a/tests/media/auxiliary_files/count_english.mp3 b/tests/media/auxiliary_files/count_english.mp3 deleted file mode 100644 index 8f7db4e2f1..0000000000 Binary files a/tests/media/auxiliary_files/count_english.mp3 and /dev/null differ diff --git a/tests/media/auxiliary_files/count_french.mp3 b/tests/media/auxiliary_files/count_french.mp3 deleted file mode 100644 index f320621bf3..0000000000 Binary files a/tests/media/auxiliary_files/count_french.mp3 and /dev/null differ diff --git a/tests/media/auxiliary_files/count_german.mp3 b/tests/media/auxiliary_files/count_german.mp3 deleted file mode 100644 index 2ac2224f95..0000000000 Binary files a/tests/media/auxiliary_files/count_german.mp3 and /dev/null differ diff --git a/tests/media/auxiliary_files/count_italian.mp3 b/tests/media/auxiliary_files/count_italian.mp3 deleted file mode 100644 index deca94fde3..0000000000 Binary files a/tests/media/auxiliary_files/count_italian.mp3 and /dev/null differ diff --git a/tests/media/auxiliary_files/count_spanish.mp3 b/tests/media/auxiliary_files/count_spanish.mp3 deleted file mode 100644 index 017e819b78..0000000000 Binary files a/tests/media/auxiliary_files/count_spanish.mp3 and /dev/null differ diff --git a/tests/media/auxiliary_files/count_video.cmp b/tests/media/auxiliary_files/count_video.cmp deleted file mode 100644 index 05115902b1..0000000000 Binary files a/tests/media/auxiliary_files/count_video.cmp and /dev/null differ diff --git a/tests/media/auxiliary_files/counter.hvc b/tests/media/auxiliary_files/counter.hvc deleted file mode 100644 index f445689135..0000000000 Binary files a/tests/media/auxiliary_files/counter.hvc and /dev/null differ diff --git a/tests/media/auxiliary_files/enst_audio.aac b/tests/media/auxiliary_files/enst_audio.aac deleted file mode 100644 index 28980a7789..0000000000 Binary files a/tests/media/auxiliary_files/enst_audio.aac and /dev/null differ diff --git a/tests/media/auxiliary_files/enst_video.h264 b/tests/media/auxiliary_files/enst_video.h264 deleted file mode 100644 index 958fbcbab1..0000000000 Binary files a/tests/media/auxiliary_files/enst_video.h264 and /dev/null differ diff --git a/tests/media/auxiliary_files/enstvid.ivf b/tests/media/auxiliary_files/enstvid.ivf deleted file mode 100644 index b142ee9a15..0000000000 Binary files a/tests/media/auxiliary_files/enstvid.ivf and /dev/null differ diff --git a/tests/media/auxiliary_files/hdr.xml b/tests/media/auxiliary_files/hdr.xml deleted file mode 100644 index 624691ed43..0000000000 --- a/tests/media/auxiliary_files/hdr.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/tests/media/auxiliary_files/index2batch.xslt b/tests/media/auxiliary_files/index2batch.xslt deleted file mode 100644 index d1ddeace84..0000000000 --- a/tests/media/auxiliary_files/index2batch.xslt +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - -@ECHO OFF -SET XALAN="" - - - - -IF NOT EXIST .mp4 MP4Box -mp4 . - -mp4client -bmp - .mp4 -2d - - -@echo Creating HTML for -IF NOT EXIST .html java -jar %XALAN% -IN .svg -OUT .html -XSL /svg2html.xslt -PARAM filename -PARAM next -PARAM previous -PARAM snapshot -@echo done. - - - -IF NOT EXIST .mp4 MP4Box -mp4 . -IF NOT EXIST .xmt MP4Box -xmt . - -mp4client -bmp - .mp4 -3d -2d - - -@echo Creating HTML for -IF NOT EXIST .html java -jar %XALAN% -IN .xmt -OUT .html -XSL /xmt2html.xslt -PARAM filename -PARAM use3d true -PARAM next -PARAM previous -PARAM snapshot -@echo done. - - - -IF NOT EXIST .x3d MP4Box -x3d . - -@echo Creating HTML for -IF NOT EXIST .html java -jar %XALAN% -IN .x3d -OUT .html -XSL /x3d2html.xslt -PARAM filename -PARAM use3d true -PARAM next -PARAM previous -@echo done. - - - - diff --git a/tests/media/auxiliary_files/index2html.xslt b/tests/media/auxiliary_files/index2html.xslt deleted file mode 100644 index 92cef17b7b..0000000000 --- a/tests/media/auxiliary_files/index2html.xslt +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - GPAC Non-regression Test Suite Navigator - - - - -

The suite contains tests for:

-
    -
  • all BIFS nodes supported by the GPAC renderer
  • -
  • all BIFS commands, extended BIFS commands and OD Commands
  • -
  • Stream Management (MediaControl, MediaSegments and segmentDescriptor usage)
  • -
  • Most BIFS Advanced Text and Graphics nodes
  • -
- -

Test sequences are provided in the BT format, and need MP4Box to be encoded or translated to XMT-A. -
The GPAC Regression Tests are part of the GPAC source code and are also available on GPAC GitHub.

- -
- -
- - -
- - -

-
-
    - -
-
-
- - -

-
-
    - -
-
-
- - - -
  • - - - - -
  • -
    -
    -
    diff --git a/tests/media/auxiliary_files/index2sh.xslt b/tests/media/auxiliary_files/index2sh.xslt deleted file mode 100644 index eaea85c290..0000000000 --- a/tests/media/auxiliary_files/index2sh.xslt +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - -#!/bin/sh -#xslt path: - - - - - - -if [ ! -e .mp4 ]; then MP4Box -mp4 . -fi - -MP4Client -bmp - .mp4 -2d - - -echo "Creating HTML for " -if [ ! -e .html ]; then -xsltproc -o .html --stringparam filename --stringparam next --stringparam previous --stringparam snapshot /svg2html.xslt .svg -fi -#echo "done." - - - -if [ ! -e .mp4 ]; then -MP4Box -mp4 . -fi -if [ ! -e .xmt ]; then -MP4Box -xmt . -fi - -MP4Client -bmp - .mp4 -3d -2d - - -echo "Creating HTML for " -if [ ! -e .html ]; then -xsltproc --stringparam filename --stringparam use3d true --stringparam next --stringparam previous --stringparam snapshot -o .html /xmt2html.xslt .xmt -fi -#echo "done." - - - -if [ ! -e .x3d ]; then -MP4Box -x3d . -fi - -echo "Creating HTML for " -if [ ! -e .html ]; then -xsltproc --stringparam filename --stringparam use3d true --stringparam next --stringparam previous -o .html /x3d2html.xslt .x3d -#echo "done." -fi - - - - - diff --git a/tests/media/auxiliary_files/logo.bt b/tests/media/auxiliary_files/logo.bt deleted file mode 100644 index e7f58857b0..0000000000 --- a/tests/media/auxiliary_files/logo.bt +++ /dev/null @@ -1,126 +0,0 @@ -InitialObjectDescriptor { - objectDescriptorID 1 - sceneProfileLevelIndication 254 - graphicsProfileLevelIndication 254 - ODProfileLevelIndication 254 - esDescr [ - ES_Descriptor { - ES_ID 1 - decConfigDescr DecoderConfigDescriptor { - objectTypeIndication 1 - streamType 3 - bufferSizeDB 2038 - decSpecificInfo BIFSConfig { - nodeIDbits 4 - isCommandStream true - pixelMetric true - } - } - slConfigDescr SLConfigDescriptor { - useAccessUnitStartFlag true - useAccessUnitEndFlag true - useTimeStampsFlag true - timeStampResolution 1000 - timeStampLength 32 - } - } - ] -} - -OrderedGroup { - children [ -# Background2D { backColor 1 1 1 } - DEF N0 Viewport { - size 140 140 - fit 1 - } - - Transform2D { - scale 0.5 0.5 - children [ - Transform2D { - translation 1 -2 - children [ - Shape { - appearance Appearance { - material Material2D { - lineProps XLineProperties { - lineColor 0.2 0.2 0.2 - width 20 - } - } - } - geometry Circle { - radius 100 - } - } - ] - } - Transform2D { - translation 0 -30 - children [ - Shape { - appearance DEF N3 Appearance { - texture RadialGradient { - focalPoint 0.45 0.8 - key [0 1] - keyValue [0.5 0.5 0.5 0 0 0] - } - material Material2D { - filled TRUE - } - } - geometry Circle { - radius 60 - } - } - ] - } - Transform2D { - translation 0 90 - children [ - Shape { - appearance Appearance { - material Material2D { - filled true - } - texture RadialGradient { - focalPoint 0.45 0.2 - key [0 1] - keyValue [0.2 0.2 0.2 0 0 0] - } - } - geometry IndexedFaceSet2D { - colorPerVertex false - coord Coordinate2D { - point [-40 5 40 5 0 -60] - } - } - } - ] - } - Shape { - appearance Appearance { - material DEF N4 Material2D { - lineProps DEF N5 XLineProperties { - lineColor 1 0 0 - width 20 - texture RadialGradient { - focalPoint 0.5 0.5 - key [0 0.8 0.9 1] - keyValue [0 0 0 0.5 0 0 1 0 0 0.5 0 0] - } - } - } - } - geometry Circle { - radius 100 - } - } - ] - } - - ] -} - - diff --git a/tests/media/auxiliary_files/logo.jpg b/tests/media/auxiliary_files/logo.jpg deleted file mode 100644 index bad06d875c..0000000000 Binary files a/tests/media/auxiliary_files/logo.jpg and /dev/null differ diff --git a/tests/media/auxiliary_files/logo.png b/tests/media/auxiliary_files/logo.png deleted file mode 100644 index 34673e05b5..0000000000 Binary files a/tests/media/auxiliary_files/logo.png and /dev/null differ diff --git a/tests/media/auxiliary_files/nefertiti.wrl b/tests/media/auxiliary_files/nefertiti.wrl deleted file mode 100644 index 2abf78c7f3..0000000000 --- a/tests/media/auxiliary_files/nefertiti.wrl +++ /dev/null @@ -1,649 +0,0 @@ -#VRML V2.0 utf8 - -# Produced by 3D Studio MAX VRML 2.0 exporter, Version 2, Beta 0 -# MAX File: nefertiti.max, Date: Tue Sep 29 17:32:41 1998 - -Viewpoint { position 0 -1 10 } - -DEF _____01-ROOT Transform { - translation -0.1337 -2.107 -1.839 - children [ - Shape { - appearance Appearance { - material Material { - diffuseColor 0.9804 0.9804 0.9804 - } - } - geometry DEF FACES IndexedFaceSet { - ccw TRUE - solid FALSE - creaseAngle 2 - coord DEF _____01-COORD Coordinate { point [ - -2.116 1.757 -1.271, -2.036 1.587 -1.231, -2.136 1.607 -1.391, - -2.206 1.837 -1.361, -2.216 1.867 -1.161, -2.116 1.697 -1.111, - -2.066 1.457 -1.131, -1.946 1.607 -0.9606, -1.966 1.387 -1.011, - -2.076 1.337 -1.251, -2.096 1.397 -1.301, -2.396 1.687 -1.561, - -2.306 1.477 -1.521, -2.466 1.527 -1.711, -2.446 1.737 -1.651, - -2.396 1.877 -1.491, -2.326 1.217 -1.511, -2.186 1.437 -1.431, - -2.086 1.257 -1.391, -2.096 1.127 -1.411, -2.196 0.9375 -1.391, - -2.386 1.017 -1.521, -2.486 1.217 -1.691, -2.056 0.9875 -1.251, - -1.976 1.267 -1.141, -1.876 1.167 -1.121, -1.996 0.8775 -1.001, - -2.116 0.8775 -1.201, -1.946 1.267 -1.001, -1.916 1.297 -0.9206, - -1.966 1.197 -0.9206, -1.886 1.127 -0.9906, -1.946 1.287 -1.081, - -1.986 1.017 -0.8106, -1.926 1.127 -0.7606, -1.896 0.9375 -0.6006, - -1.976 0.7975 -0.6606, -1.926 0.9575 -0.9206, -2.136 0.7675 -0.8906, - -1.996 0.5875 -0.6606, -2.136 0.5575 -0.9806, -2.226 0.7575 -1.111, - -1.906 0.3475 -0.6006, -1.856 0.5175 -0.5106, -1.746 0.2775 -0.5806, - -1.906 0.2275 -0.7406, -2.036 0.3375 -0.9706, -2.046 0.4775 -0.7806, - -1.866 0.7975 -0.5406, -2.296 0.8575 -1.351, -2.196 0.6175 -1.211, - -2.236 0.6575 -1.421, -2.346 0.8575 -1.581, -2.386 0.9575 -1.541, - -2.116 0.4775 -1.171, -1.776 0.2875 -0.9306, -1.846 0.4775 -1.181, - -1.566 0.2275 -0.7506, -1.566 0.4375 -0.9906, -1.636 0.7175 -1.341, - -1.986 0.7375 -1.431, -1.756 1.027 -1.601, -2.136 1.097 -1.701, - -2.276 1.537 -1.751, -2.536 1.687 -1.771, -2.466 1.217 -1.751, - -1.966 1.377 -1.751, -2.076 1.717 -1.721, -2.316 1.877 -1.631, - -2.546 1.537 -1.741, -2.546 1.747 -1.671, -2.556 1.937 -1.611, - -2.536 1.897 -1.581, -2.206 1.947 -1.611, -2.326 2.037 -1.421, - -2.316 2.027 -1.231, -2.176 2.067 -1.291, -2.356 1.927 -1.331, - -2.186 1.907 -1.061, -1.976 1.957 -1.001, -2.106 1.857 -1.041, - -1.866 0.9475 -0.3906, -1.936 1.367 -0.2506, -1.946 1.297 -0.0005862, - -1.886 0.8775 0.4194, -1.806 0.4475 0.2294, -1.786 0.1875 0.1694, - -1.806 0.3175 -0.2706, -1.366 0.3575 -2.181, -1.406 0.05749 -1.281, - -1.556 -0.1525 -0.7106, -1.516 -0.6325 -1.151, -1.146 -0.6925 -1.741, - -1.086 -0.2125 -1.911, -1.786 -0.1825 0.03941, -1.766 -0.1525 -0.3606, - -1.706 -0.09251 0.3694, -1.706 -0.3625 0.2894, -1.616 -1.023 -0.1406, - -1.646 -0.8525 -0.4206, -1.576 -0.8825 -0.6006, -1.556 -1.053 -0.4206, - -1.346 -1.333 -0.3906, -1.486 -1.393 -0.9606, -0.7163 -0.6425 -2.381, - -1.036 -1.113 -2.021, -0.7363 -1.093 -2.401, -0.0763 -0.5625 -2.381, - -0.5963 -0.5225 -2.471, -0.5563 -0.4825 -2.571, -1.056 -0.03251 -2.361, - -0.0963 -1.093 -2.371, -0.1063 -1.473 -2.511, -0.7963 -1.483 -2.531, - -1.366 -1.963 -1.861, -1.386 -2.313 -2.071, -0.9363 -1.943 -2.681, - -0.7963 -1.913 -2.791, -0.8963 -3.243 -3.621, -1.706 -3.973 -3.811, - -0.9963 -4.103 -4.111, -0.2363 -4.093 -4.191, -0.2063 -3.353 -3.741, - -0.1663 -2.603 -3.231, -0.8963 -2.513 -3.141, -1.126 -2.563 -3.001, - -1.386 -3.223 -3.371, -0.1363 -2.063 -2.891, -1.826 -3.313 -2.851, - -2.236 -3.693 -2.581, -2.136 -3.713 -3.151, -1.536 -2.833 -2.451, - -1.946 -3.423 -2.331, -1.926 -3.633 -2.031, -1.956 -4.303 -1.764, - -2.226 -3.873 -2.171, -1.676 -3.073 -2.071, -1.666 -3.253 -1.851, - -1.696 -4.023 -1.671, -1.426 -4.363 -1.411, -1.276 -5.023 -1.261, - -1.666 -4.683 -1.501, -1.486 -3.683 -1.491, -1.246 -4.053 -1.211, - -1.216 -4.623 -1.281, -1.376 -3.073 -1.221, -1.476 -2.773 -1.491, - -1.406 -2.483 -1.201, -1.166 -2.893 -0.7706, -1.046 -3.473 -0.8406, - -1.526 -2.563 -1.731, -1.446 -2.233 -1.511, -0.8263 -5.193 -1.071, - -0.9163 -4.373 -1.001, -0.6763 -4.483 -1.001, -0.5263 -5.313 -1.121, - -0.3563 -5.333 -1.131, -0.3663 -4.643 -1.021, -0.1763 -4.753 -1.051, - -0.1963 -5.383 -1.131, -0.4363 -3.893 -0.7006, -0.8863 -3.613 -0.7806, - -0.4763 -3.393 -0.5006, -0.1263 -3.533 -0.5006, -0.1463 -4.033 -0.7306, - -1.456 -1.853 -1.241, -1.386 -1.483 -1.611, -1.486 -1.443 -1.231, - -1.316 -2.193 -0.8206, -0.5163 -2.813 -0.2806, -1.036 -3.023 -0.7006, - -1.196 -2.353 -0.6606, -0.8663 -2.103 -0.1806, -0.5563 -1.883 0.2294, - -0.0963 -2.933 -0.2106, -1.346 -1.533 -0.5406, -1.096 -1.573 -0.1606, - -0.0563 -1.943 0.3194, -0.0363 -1.683 0.7494, -0.5663 -1.643 0.5794, - -1.146 -1.393 0.3994, -1.516 -1.173 -0.2506, -1.286 -1.353 0.1994, - -1.386 -1.193 0.4494, -0.5363 -1.483 1.049, -0.9463 -1.283 1.249, - -0.5563 -1.473 1.399, -0.0063 -1.513 1.649, -1.566 -0.8925 0.3994, - -1.396 -0.7425 0.8494, -1.636 0.04749 0.7194, -1.476 -0.1825 0.9894, - -1.296 -0.3925 1.199, -1.146 -0.7725 1.289, -0.9763 -1.073 1.419, - -0.6263 -1.363 1.779, -0.2763 -1.483 1.829, -0.7363 -1.173 1.769, - -0.5263 -1.183 2.009, -0.3963 -1.373 1.969, 0.0137 -1.353 2.069, - -0.3563 -1.223 2.149, -0.3663 -0.9425 2.139, 0.0237 -1.013 2.219, - 0.0237 -1.233 2.209, -0.9063 -0.8825 1.549, -0.9963 -0.5625 1.519, - -0.7563 -0.6625 1.699, -0.6463 -0.8825 1.859, -1.736 0.2775 0.4994, - -1.846 0.8575 0.7094, -1.696 0.3575 0.8394, -1.576 0.3675 1.109, - -1.386 -0.1125 1.169, -1.756 0.8475 1.009, -1.536 0.8375 1.299, - -1.326 0.4575 1.419, -1.056 0.08749 1.569, -1.106 0.6175 1.629, - -0.8663 0.3575 1.769, -0.8263 0.05749 1.839, -1.026 -0.2525 1.579, - -0.2263 -0.6525 2.109, -0.3863 -0.6325 2.069, -0.2463 -0.5525 2.179, - 0.0337 -0.6925 2.129, -0.4063 -0.5325 2.129, -0.4963 -0.4525 2.019, - -0.4163 -0.3925 2.099, -0.2663 -0.4225 2.199, -0.0963 -0.4525 2.209, - 0.0437 -0.5625 2.209, -0.1563 -0.2725 2.139, 0.0537 -0.3125 2.179, - 0.0437 -0.4525 2.229, -0.5263 -0.5725 1.919, -0.7363 -0.3125 1.709, - -0.5263 0.02749 1.999, -0.4263 -0.08251 2.099, -0.4263 -0.1925 2.079, - -0.4063 -0.2825 2.039, -0.2963 -0.2825 2.109, -0.3363 -0.1525 2.159, - -0.0563 -0.1425 2.299, -0.1863 -0.1425 2.229, -0.1263 0.02749 2.299, - 0.0637 -0.002507 2.319, 0.0537 -0.1425 2.299, -0.3363 -0.04251 2.209, - -0.0863 0.1175 2.279, -0.2563 0.4275 2.069, -0.0263 0.3575 2.229, - 0.0737 0.3275 2.229, 0.0637 0.1175 2.259, -0.6963 0.1875 1.899, - -0.4263 0.4675 1.969, -0.0763 0.6175 2.109, -0.3663 0.5675 2.149, - -0.2263 0.6175 2.279, -0.0963 0.5975 2.359, -0.0163 0.5075 2.409, - -0.4363 0.6075 2.049, -0.4963 0.6675 1.899, -0.3963 0.7375 2.139, - -0.2663 0.6775 2.319, -0.0963 0.6675 2.489, -0.1363 0.8275 2.439, - -0.0063 0.8675 2.529, 0.0937 0.7575 2.569, 0.0837 0.4875 2.439, - -1.306 0.8475 1.509, -1.456 1.227 1.339, -1.206 1.167 1.509, - -0.9263 0.8775 1.709, -0.8763 1.187 1.649, -1.126 1.447 1.479, - -0.8663 1.457 1.549, -0.5663 1.487 1.569, -0.4163 1.357 1.749, - -0.5063 1.017 1.849, -0.2963 0.9775 1.999, -0.2063 0.9075 2.229, - -0.0763 1.177 2.229, -0.3263 1.697 1.629, -0.0663 2.097 1.749, - 0.1037 1.417 2.229, 0.1237 2.127 1.839, -1.386 1.727 1.249, - -1.466 1.567 1.219, -1.646 1.747 0.9494, -1.346 1.887 1.359, - -1.296 1.767 1.359, -1.206 1.647 1.409, -1.096 1.607 1.479, - -1.146 1.707 1.479, -0.9963 1.697 1.529, -0.8663 1.597 1.529, - -0.6463 1.607 1.549, -0.7663 1.707 1.549, -0.5263 1.727 1.479, - -0.4563 1.667 1.539, -0.5063 1.947 1.539, -0.3563 2.047 1.509, - -1.646 1.277 1.149, -1.816 1.417 0.8194, -1.906 1.207 0.5394, - -1.906 1.537 0.2594, -1.836 1.747 0.4994, -1.806 1.717 0.7294, - -1.436 2.037 1.149, -1.716 1.877 0.8394, -1.596 2.197 1.099, - -1.186 2.287 1.359, -1.786 2.037 0.7494, -1.886 1.877 0.009414, - -1.796 2.277 0.4294, -1.656 2.317 1.039, -0.9863 2.337 1.459, - -0.8663 2.057 1.589, -1.086 2.037 1.549, -0.9963 2.527 1.529, - -0.6863 2.507 1.579, -0.7163 2.307 1.479, -0.4863 2.207 1.479, - -0.3563 2.367 1.649, -0.3163 2.517 1.709, -0.6463 2.677 1.629, - -0.5563 2.997 1.479, -0.1163 2.867 1.549, -1.036 2.737 1.529, - -1.326 2.467 1.369, -1.386 2.627 1.359, -1.026 3.027 1.369, - 0.1337 2.747 1.589, 0.1437 3.517 1.219, -0.3963 3.517 1.239, - -1.026 3.427 1.129, -1.436 3.257 0.9294, -1.386 2.897 1.179, - -1.696 2.607 0.7894, -1.836 2.567 0.06941, -1.706 2.937 0.5194, - -1.916 2.047 -0.7406, 1.934 0.7375 0.6094, 1.854 0.7275 0.9194, - 1.944 1.297 0.7194, 2.004 1.917 -0.8406, 2.044 1.827 -1.101, - 1.994 1.477 -1.061, 2.004 1.237 -0.3506, 2.004 1.747 -0.09059, - 2.024 1.167 -0.1006, 2.014 1.407 0.1594, 1.964 1.627 0.3994, - 1.964 2.157 0.3294, 1.994 2.447 -0.03059, 1.694 3.157 0.8494, - 1.914 2.817 0.4294, 1.634 2.797 1.099, 1.624 2.527 1.279, - 1.904 2.487 0.6994, 1.854 2.207 0.9494, 1.284 2.957 1.309, - 1.304 3.357 1.069, 0.6837 3.487 1.209, 0.8237 2.957 1.439, - 0.3837 2.847 1.539, 1.554 2.377 1.299, 1.794 2.087 1.009, - 1.404 2.207 1.289, 1.624 1.937 1.069, 1.234 2.457 1.469, - 0.9037 2.627 1.589, 1.284 2.667 1.469, 0.9237 2.457 1.539, - 0.5937 2.337 1.629, 0.2937 2.087 1.739, 0.5637 2.487 1.689, - 0.5637 2.017 1.489, 1.294 1.957 1.489, 1.534 1.797 1.289, - 0.7137 1.907 1.509, 0.7037 2.167 1.449, 0.9437 2.257 1.439, - 1.074 1.997 1.539, 1.214 2.267 1.399, 1.874 1.757 0.7494, - 1.954 1.917 0.6494, 1.944 1.597 0.6294, 1.804 1.637 0.8594, - 2.004 1.077 0.4394, 1.954 0.7575 0.3194, 0.7437 1.447 1.539, - 0.5937 1.327 1.719, 0.6437 1.627 1.509, 1.624 1.467 1.139, - 1.294 1.367 1.419, 1.384 1.567 1.339, 1.784 1.167 1.059, - 1.654 0.7375 1.219, 1.604 1.127 1.259, 1.354 1.087 1.439, - 0.5137 1.667 1.609, 0.7137 1.687 1.449, 0.9537 1.647 1.509, - 1.184 1.627 1.469, 1.044 1.537 1.479, 1.334 1.627 1.419, - 1.474 1.677 1.289, 0.8237 1.557 1.509, 1.034 1.397 1.499, - 1.274 1.527 1.419, 1.554 1.637 1.169, 1.754 0.2475 0.7494, - 0.6637 0.9775 1.819, 0.4637 0.9575 1.979, 0.1937 0.8575 2.519, - 0.3137 0.8175 2.429, 0.2637 1.167 2.219, 0.3837 0.8875 2.209, - 0.4337 0.6575 2.299, 0.5537 0.7075 2.119, 0.6337 0.6275 1.869, - 1.064 0.8175 1.659, 0.9737 0.2975 1.719, 1.224 0.5375 1.569, - 0.5537 0.4375 1.939, 1.034 1.127 1.599, 1.434 0.7575 1.439, - 1.424 0.3675 1.349, 0.1737 0.4975 2.409, 0.2637 0.6575 2.479, - 0.1637 0.3475 2.229, 0.3837 0.5975 2.259, 0.2537 0.5875 2.349, - 0.5137 0.5375 2.129, 0.3937 0.4075 2.049, 0.5837 0.5775 2.019, - 0.2237 0.6075 2.099, 0.6337 -0.01251 1.969, 0.8037 0.1375 1.859, - 0.9237 -0.002507 1.789, 0.2437 0.01749 2.289, 0.2137 0.1075 2.269, - 0.4437 -0.07251 2.189, 0.2537 -0.2825 2.129, 0.2937 -0.1625 2.219, - 0.4337 -0.1725 2.139, 0.5237 -0.2225 2.059, 0.5237 -0.1125 2.079, - 0.1637 -0.1525 2.289, 0.3537 -0.4425 2.179, 0.3837 -0.3025 2.089, - 0.4937 -0.3125 2.019, 0.4937 -0.4225 2.079, 0.8037 -0.7125 1.659, - 0.5837 -0.6125 1.889, 0.8037 -0.3625 1.669, 0.5737 -0.4825 1.989, - 1.084 -0.3225 1.529, 1.034 -0.6325 1.469, 0.6837 -0.9225 1.829, - 0.4137 -0.9725 2.119, 0.4537 -0.6625 2.049, 0.3237 -0.5725 2.169, - 0.1837 -0.4625 2.199, 0.4837 -0.5625 2.109, 0.2937 -0.6725 2.099, - 1.324 -0.4725 1.129, 1.164 -0.8425 1.229, 1.514 -0.2825 0.9094, - 1.434 -0.2025 1.099, 1.674 -0.06251 0.6294, 1.144 0.01749 1.509, - 1.654 0.2675 1.029, 1.774 0.1675 0.4094, 1.844 0.3275 0.1394, - 1.804 0.06749 0.07941, 1.714 -0.2025 0.2794, 0.7537 -1.223 1.729, - 0.5537 -1.213 1.979, 0.9737 -1.133 1.369, 0.9237 -0.9425 1.499, - 0.9237 -1.343 1.199, 0.4037 -1.403 1.949, 0.2737 -1.503 1.819, - 0.5337 -1.513 1.369, 0.3837 -1.243 2.129, 0.6237 -1.403 1.749, - 1.694 -0.4725 0.1994, 1.524 -0.9925 0.3194, 1.384 -0.8325 0.7794, - 1.324 -1.283 0.3794, 1.074 -1.463 0.3394, 1.534 -1.123 -0.2206, - 1.564 -0.9525 -0.5006, 1.464 -1.153 -0.5006, 0.4937 -1.513 1.019, - 0.4837 -1.673 0.5494, 1.424 -1.263 -0.3306, 1.204 -1.433 0.1394, - 1.234 -1.413 -0.4606, 0.9837 -1.643 -0.2106, 0.4437 -1.913 0.1994, - 0.2337 -3.413 -0.5206, 0.7137 -2.153 -0.2206, 1.004 -2.423 -0.7206, - 1.124 -2.273 -0.8806, 1.214 -1.613 -0.6106, 1.344 -1.483 -1.031, - 0.7737 -3.533 -0.8906, 0.6137 -3.663 -0.8206, 0.9337 -2.963 -0.8206, - 0.8037 -3.083 -0.7506, 1.184 -2.563 -1.271, 0.3237 -2.843 -0.3006, - 0.8537 -1.173 -2.071, 1.204 -1.563 -1.681, 1.004 -0.7625 -1.801, - 1.414 -0.7225 -1.231, 1.324 -1.533 -1.301, 1.144 -2.043 -1.931, - 1.224 -2.323 -1.581, 1.264 -1.943 -1.311, 1.214 -2.863 -1.561, - 0.9137 -4.123 -1.271, 0.5837 -4.423 -1.041, 0.3337 -4.513 -1.031, - 0.1437 -3.913 -0.7206, 0.0137 -4.653 -1.031, -0.0463 -5.343 -1.141, - 0.1237 -5.333 -1.141, 0.4337 -5.233 -1.101, 0.8437 -4.693 -1.331, - 0.8837 -5.093 -1.321, 1.344 -4.123 -1.751, 1.584 -4.413 -1.854, - 1.284 -4.773 -1.581, 1.164 -3.773 -1.561, 1.354 -3.353 -1.931, - 1.264 -2.653 -1.801, 1.124 -2.393 -2.141, 1.364 -3.173 -2.151, - 1.114 -3.153 -1.281, 1.064 -4.443 -1.471, 1.004 -3.303 -3.431, - 1.244 -4.073 -3.891, 1.724 -3.833 -3.251, 1.854 -3.823 -2.691, - 1.854 -4.003 -2.281, 1.594 -3.533 -2.421, 1.224 -2.923 -2.521, - 0.6737 -1.993 -2.721, 0.8037 -2.623 -3.051, 1.584 -3.743 -2.121, - 1.464 -3.423 -2.941, 0.5237 -1.953 -2.821, 0.5737 -2.563 -3.181, - 0.4937 -3.283 -3.661, 0.5137 -4.153 -4.151, 0.5437 -1.133 -2.431, - 0.5637 -1.523 -2.571, 0.4337 -0.5525 -2.501, 0.3937 -0.5125 -2.591, - 1.274 0.2775 -2.251, 0.9237 -0.09251 -2.411, 0.9737 -0.2825 -1.961, - 0.5537 -0.6825 -2.411, 1.734 -0.2625 -0.4506, 1.504 -0.2525 -0.7906, - 1.484 -0.9825 -0.6806, 1.724 0.1675 -0.6706, 1.774 -0.2925 -0.05059, - 1.804 0.1975 -0.3606, 1.534 0.1275 -0.8306, 1.854 0.3975 -0.6106, - 1.884 0.6775 -0.6406, 1.534 0.3375 -1.071, 1.334 -0.03251 -1.351, - 1.604 0.6175 -1.421, 1.734 0.9175 -1.691, 1.944 1.177 -1.021, - 1.954 1.007 -0.8606, 1.904 0.8275 -0.4906, 1.924 0.8175 -0.7006, - 1.994 1.257 -1.111, 2.164 1.557 -1.221, 2.164 1.717 -1.151, - 2.234 1.927 -1.401, 2.244 1.767 -1.181, 2.374 1.877 -1.351, - 2.264 1.727 -1.281, 2.404 1.777 -1.451, 2.564 1.737 -1.711, - 2.434 1.717 -1.621, 2.244 1.697 -1.481, 2.464 1.577 -1.781, - 2.564 1.587 -1.801, 2.374 1.887 -1.541, 2.244 1.807 -1.731, - 2.094 1.587 -1.831, 2.344 1.727 -1.751, 2.584 1.767 -1.741, - 2.544 1.527 -1.901, 2.114 0.9575 -1.811, 2.314 0.7075 -1.701, - 2.444 1.057 -1.881, 2.314 1.327 -1.641, 2.464 1.367 -1.841, - 2.464 1.057 -1.821, 2.364 0.8675 -1.641, 2.364 0.8075 -1.661, - 2.544 1.377 -1.871, 1.954 1.247 -1.851, 2.274 1.387 -1.871, - 1.954 0.6075 -1.531, 1.814 0.3575 -1.271, 2.194 0.5175 -1.541, - 1.744 0.1775 -1.021, 1.874 0.1075 -0.8406, 2.004 0.2075 -1.071, - 2.084 0.3375 -1.281, 2.114 0.4175 -1.091, 2.164 0.4775 -1.321, - 2.214 0.6175 -1.231, 2.034 0.3475 -0.8906, 1.994 0.4575 -0.7606, - 2.274 0.7075 -1.471, 2.104 0.7375 -1.311, 2.174 0.7975 -1.501, - 1.984 0.6675 -0.7606, 1.894 0.2275 -0.7006, 1.994 0.7475 -1.101, - 1.934 0.8375 -1.021, 1.884 1.047 -1.221, 1.904 1.007 -1.091, - 2.134 0.6275 -1.001, 1.994 1.067 -1.021, 2.004 0.8875 -0.9106, - 2.094 1.207 -1.361, 1.964 1.157 -1.181, 1.994 1.137 -1.241, - 1.974 1.137 -1.101, 2.114 1.257 -1.411, 2.084 1.127 -1.501, - 2.044 0.8575 -1.361, 2.084 0.9975 -1.521, 2.194 1.297 -1.541, - 2.164 1.467 -1.501, 2.064 1.457 -1.341, 2.314 1.067 -1.631, - 2.414 1.537 -1.681, 2.094 1.327 -1.241, 2.154 1.617 -1.381] - } - coordIndex [ - 1, 0, 2, -1, - 2, 0, 3, -1, 3, 0, 4, -1, 4, 0, 5, -1, 5, 0, 1, -1, - 5, 6, 7, -1, 7, 6, 8, -1, 8, 6, 9, -1, 9, 6, 10, -1, - 10, 6, 1, -1, 1, 6, 5, -1, 3, 11, 2, -1, 2, 11, 12, -1, - 12, 11, 13, -1, 13, 11, 14, -1, 14, 11, 15, -1, 15, 11, 3, -1, - 12, 16, 17, -1, 17, 16, 10, -1, 10, 16, 18, -1, 18, 16, 19, -1, - 19, 16, 20, -1, 20, 16, 21, -1, 21, 16, 22, -1, 22, 16, 12, -1, - 1, 2, 10, -1, 17, 10, 2, -1, 17, 2, 12, -1, 9, 23, 24, -1, - 24, 23, 25, -1, 25, 23, 26, -1, 26, 23, 27, -1, 27, 23, 20, -1, - 20, 23, 19, -1, 19, 23, 18, -1, 18, 23, 9, -1, 18, 9, 10, -1, - 8, 28, 29, -1, 29, 28, 30, -1, 30, 28, 31, -1, 31, 28, 25, -1, - 25, 28, 32, -1, 32, 28, 8, -1, 25, 32, 24, -1, 24, 32, 9, -1, - 9, 32, 8, -1, 31, 33, 30, -1, 30, 33, 34, -1, 34, 33, 35, -1, - 35, 33, 36, -1, 36, 33, 37, -1, 37, 33, 31, -1, 30, 34, 29, -1, - 26, 38, 36, -1, 36, 38, 39, -1, 39, 38, 40, -1, 40, 38, 41, -1, - 41, 38, 26, -1, 36, 37, 26, -1, 31, 25, 37, -1, 37, 25, 26, -1, - 26, 27, 41, -1, 39, 42, 43, -1, 43, 42, 44, -1, 44, 42, 45, -1, - 45, 42, 46, -1, 46, 42, 47, -1, 47, 42, 39, -1, 43, 48, 39, -1, - 36, 39, 48, -1, 36, 48, 35, -1, 21, 49, 20, -1, 20, 49, 27, -1, - 27, 49, 41, -1, 41, 49, 50, -1, 50, 49, 51, -1, 51, 49, 52, -1, - 52, 49, 53, -1, 53, 49, 21, -1, 39, 40, 47, -1, 47, 40, 46, -1, - 40, 41, 50, -1, 51, 54, 50, -1, 50, 54, 40, -1, 40, 54, 46, -1, - 46, 54, 55, -1, 55, 54, 56, -1, 56, 54, 51, -1, 45, 46, 55, -1, - 45, 55, 57, -1, 45, 57, 44, -1, 57, 55, 58, -1, 56, 58, 55, -1, - 58, 56, 59, -1, 61, 60, 62, -1, 62, 60, 52, -1, 52, 60, 51, -1, - 51, 60, 56, -1, 56, 60, 59, -1, 59, 60, 61, -1, 64, 63, 65, -1, - 65, 63, 62, -1, 62, 63, 66, -1, 66, 63, 67, -1, 67, 63, 68, -1, - 68, 63, 64, -1, 66, 62, 61, -1, 14, 69, 13, -1, 13, 69, 22, -1, - 22, 69, 65, -1, 65, 69, 64, -1, 64, 69, 70, -1, 70, 69, 14, -1, - 52, 53, 65, -1, 53, 21, 65, -1, 22, 65, 21, -1, 13, 22, 12, -1, - 52, 65, 62, -1, 72, 71, 70, -1, 70, 71, 64, -1, 64, 71, 68, -1, - 68, 71, 73, -1, 73, 71, 74, -1, 74, 71, 75, -1, 75, 71, 72, -1, - 68, 73, 67, -1, 76, 73, 74, -1, 76, 74, 75, -1, 70, 14, 72, -1, - 72, 14, 15, -1, 4, 77, 3, -1, 3, 77, 15, -1, 15, 77, 72, -1, - 72, 77, 75, -1, 75, 77, 4, -1, 79, 78, 80, -1, 80, 78, 5, -1, - 5, 78, 4, -1, 4, 78, 75, -1, 75, 78, 76, -1, 76, 78, 79, -1, - 7, 79, 80, -1, 7, 80, 5, -1, 8, 29, 7, -1, 29, 81, 7, -1, - 7, 81, 82, -1, 82, 81, 83, -1, 83, 81, 84, -1, 84, 81, 85, -1, - 85, 81, 86, -1, 86, 81, 87, -1, 87, 81, 48, -1, 48, 81, 35, -1, - 35, 81, 34, -1, 34, 81, 29, -1, 61, 88, 59, -1, 58, 59, 88, -1, - 58, 89, 57, -1, 57, 89, 90, -1, 90, 89, 91, -1, 91, 89, 92, -1, - 92, 89, 93, -1, 93, 89, 88, -1, 88, 89, 58, -1, 87, 48, 43, -1, - 87, 43, 44, -1, 90, 44, 57, -1, 95, 94, 44, -1, 44, 94, 87, -1, - 87, 94, 86, -1, 86, 94, 96, -1, 96, 94, 97, -1, 97, 94, 98, -1, - 98, 94, 99, -1, 99, 94, 95, -1, 95, 44, 90, -1, 91, 100, 90, -1, - 90, 100, 99, -1, 99, 100, 101, -1, 101, 100, 102, -1, - 102, 100, 103, -1, 103, 100, 91, -1, 90, 99, 95, -1, - 93, 104, 92, -1, 92, 104, 105, -1, 105, 104, 106, -1, - 106, 104, 107, -1, 107, 104, 108, -1, 108, 104, 93, -1, - 109, 108, 110, -1, 93, 110, 108, -1, 110, 93, 88, -1, - 108, 109, 107, -1, 106, 111, 112, -1, 106, 113, 105, -1, - 105, 113, 114, -1, 114, 113, 115, -1, 115, 113, 116, -1, - 116, 113, 117, -1, 117, 113, 112, -1, 112, 113, 106, -1, - 111, 106, 107, -1, 119, 118, 120, -1, 120, 118, 121, -1, - 121, 118, 122, -1, 122, 118, 123, -1, 123, 118, 124, -1, - 124, 118, 125, -1, 125, 118, 126, -1, 126, 118, 119, -1, - 125, 116, 117, -1, 125, 117, 124, -1, 123, 124, 117, -1, - 123, 117, 127, -1, 112, 127, 117, -1, 129, 128, 130, -1, - 130, 128, 126, -1, 126, 128, 125, -1, 125, 128, 131, -1, - 131, 128, 132, -1, 132, 128, 129, -1, 134, 133, 135, -1, - 135, 133, 132, -1, 132, 133, 136, -1, 136, 133, 137, -1, - 137, 133, 138, -1, 138, 133, 134, -1, 131, 116, 125, -1, - 115, 116, 131, -1, 115, 131, 136, -1, 132, 136, 131, -1, - 135, 132, 129, -1, 119, 130, 126, -1, 140, 139, 141, -1, - 141, 139, 138, -1, 138, 139, 142, -1, 142, 139, 143, -1, - 143, 139, 144, -1, 144, 139, 140, -1, 143, 145, 142, -1, - 142, 145, 146, -1, 146, 145, 147, -1, 147, 145, 148, -1, - 148, 145, 149, -1, 149, 145, 143, -1, 146, 150, 137, -1, - 137, 150, 136, -1, 136, 150, 115, -1, 115, 150, 114, -1, - 114, 150, 151, -1, 151, 150, 146, -1, 138, 142, 137, -1, - 146, 137, 142, -1, 134, 141, 138, -1, 140, 152, 144, -1, - 143, 144, 152, -1, 143, 152, 153, -1, 154, 153, 152, -1, - 154, 152, 155, -1, 154, 155, 156, -1, 154, 156, 157, -1, - 158, 157, 156, -1, 158, 156, 159, -1, 158, 160, 157, -1, - 157, 160, 154, -1, 154, 160, 161, -1, 161, 160, 162, -1, - 162, 160, 163, -1, 163, 160, 164, -1, 164, 160, 158, -1, - 153, 154, 161, -1, 153, 161, 149, -1, 153, 149, 143, -1, - 146, 147, 151, -1, 151, 165, 166, -1, 166, 165, 167, -1, - 167, 165, 103, -1, 103, 165, 168, -1, 168, 165, 147, -1, - 147, 165, 151, -1, 151, 166, 114, -1, 105, 114, 166, -1, - 103, 91, 167, -1, 166, 167, 91, -1, 166, 91, 92, -1, - 166, 92, 105, -1, 162, 169, 170, -1, 170, 169, 171, -1, - 171, 169, 172, -1, 172, 169, 173, -1, 173, 169, 174, -1, - 174, 169, 162, -1, 148, 170, 171, -1, 148, 171, 168, -1, - 148, 168, 147, -1, 162, 170, 161, -1, 148, 161, 170, -1, - 161, 148, 149, -1, 176, 175, 168, -1, 168, 175, 103, -1, - 103, 175, 102, -1, 102, 175, 176, -1, 168, 171, 176, -1, - 172, 176, 171, -1, 176, 172, 173, -1, 163, 174, 162, -1, - 177, 173, 174, -1, 173, 177, 178, -1, 173, 178, 179, -1, - 173, 179, 180, -1, 173, 180, 176, -1, 101, 102, 181, -1, - 101, 181, 98, -1, 98, 182, 183, -1, 183, 182, 180, -1, - 180, 182, 176, -1, 176, 182, 102, -1, 102, 182, 181, -1, - 181, 182, 98, -1, 178, 184, 179, -1, 179, 184, 180, -1, - 180, 184, 185, -1, 185, 184, 186, -1, 186, 184, 187, -1, - 187, 184, 178, -1, 101, 98, 99, -1, 183, 188, 98, -1, - 98, 188, 97, -1, 183, 180, 185, -1, 97, 189, 96, -1, - 96, 189, 190, -1, 190, 189, 191, -1, 191, 189, 192, -1, - 192, 189, 193, -1, 193, 189, 194, -1, 194, 189, 185, -1, - 185, 189, 183, -1, 183, 189, 188, -1, 188, 189, 97, -1, - 196, 195, 186, -1, 186, 195, 185, -1, 185, 195, 197, -1, - 197, 195, 198, -1, 198, 195, 199, -1, 199, 195, 196, -1, - 196, 187, 200, -1, 200, 201, 199, -1, 199, 201, 198, -1, - 198, 201, 202, -1, 202, 201, 203, -1, 203, 201, 204, -1, - 204, 201, 200, -1, 187, 196, 186, -1, 196, 200, 199, -1, - 185, 197, 194, -1, 194, 205, 193, -1, 193, 205, 206, -1, - 206, 205, 207, -1, 207, 205, 208, -1, 208, 205, 197, -1, - 197, 205, 194, -1, 202, 208, 198, -1, 197, 198, 208, -1, - 190, 209, 96, -1, 96, 209, 86, -1, 86, 209, 85, -1, - 85, 209, 84, -1, 84, 209, 210, -1, 210, 209, 211, -1, - 211, 209, 190, -1, 213, 212, 191, -1, 191, 212, 211, -1, - 211, 212, 214, -1, 214, 212, 215, -1, 215, 212, 216, -1, - 216, 212, 213, -1, 216, 217, 218, -1, 218, 217, 219, -1, - 219, 217, 220, -1, 220, 217, 221, -1, 221, 217, 192, -1, - 192, 217, 213, -1, 213, 217, 216, -1, 191, 211, 190, -1, - 192, 213, 191, -1, 206, 192, 193, -1, 192, 206, 221, -1, - 203, 222, 202, -1, 202, 222, 223, -1, 223, 222, 224, -1, - 224, 222, 225, -1, 225, 222, 203, -1, 223, 226, 227, -1, - 227, 226, 228, -1, 228, 226, 229, -1, 229, 226, 224, -1, - 224, 226, 223, -1, 231, 230, 224, -1, 224, 230, 229, -1, - 229, 230, 232, -1, 232, 230, 233, -1, 233, 230, 234, -1, - 234, 230, 231, -1, 231, 224, 225, -1, 227, 235, 223, -1, - 223, 235, 208, -1, 208, 235, 207, -1, 202, 223, 208, -1, - 207, 236, 206, -1, 206, 236, 221, -1, 221, 236, 220, -1, - 220, 236, 237, -1, 237, 236, 238, -1, 238, 236, 239, -1, - 239, 236, 240, -1, 240, 236, 228, -1, 228, 236, 227, -1, - 227, 236, 235, -1, 235, 236, 207, -1, 229, 241, 228, -1, - 228, 241, 240, -1, 240, 241, 239, -1, 239, 241, 242, -1, - 242, 241, 232, -1, 232, 241, 229, -1, 233, 243, 232, -1, - 232, 243, 244, -1, 244, 243, 245, -1, 245, 243, 246, -1, - 246, 243, 247, -1, 247, 243, 233, -1, 245, 248, 244, -1, - 244, 248, 242, -1, 242, 248, 238, -1, 238, 248, 237, -1, - 242, 238, 239, -1, 244, 242, 232, -1, 245, 249, 248, -1, - 248, 249, 237, -1, 237, 249, 250, -1, 250, 249, 251, -1, - 251, 249, 252, -1, 252, 249, 253, -1, 253, 249, 246, -1, - 246, 249, 245, -1, 255, 254, 237, -1, 237, 254, 220, -1, - 220, 254, 219, -1, 219, 254, 255, -1, 255, 237, 250, -1, - 257, 256, 258, -1, 258, 256, 259, -1, 259, 256, 260, -1, - 260, 256, 251, -1, 251, 256, 250, -1, 250, 261, 255, -1, - 255, 261, 262, -1, 262, 261, 263, -1, 263, 261, 264, -1, - 264, 261, 257, -1, 257, 261, 250, -1, 257, 258, 264, -1, - 260, 265, 259, -1, 259, 265, 258, -1, 258, 265, 264, -1, - 264, 265, 266, -1, 266, 265, 267, -1, 267, 265, 268, -1, - 251, 252, 260, -1, 269, 260, 252, -1, 268, 265, 260, -1, - 268, 260, 269, -1, 218, 270, 216, -1, 216, 270, 215, -1, - 215, 270, 271, -1, 271, 270, 272, -1, 272, 270, 273, -1, - 273, 270, 218, -1, 273, 274, 272, -1, 272, 274, 275, -1, - 275, 274, 276, -1, 276, 274, 277, -1, 277, 274, 278, -1, - 278, 274, 279, -1, 279, 274, 273, -1, 255, 262, 219, -1, - 218, 219, 273, -1, 262, 273, 219, -1, 279, 273, 262, -1, - 279, 262, 280, -1, 263, 280, 262, -1, 266, 281, 263, -1, - 263, 281, 280, -1, 266, 263, 264, -1, 266, 282, 281, -1, - 281, 282, 280, -1, 280, 282, 278, -1, 278, 282, 283, -1, - 283, 282, 284, -1, 284, 282, 285, -1, 285, 282, 267, -1, - 267, 282, 266, -1, 267, 268, 285, -1, 280, 278, 279, -1, - 211, 214, 210, -1, 286, 284, 285, -1, 288, 287, 289, -1, - 289, 287, 290, -1, 290, 287, 291, -1, 291, 287, 292, -1, - 292, 287, 288, -1, 275, 293, 292, -1, 292, 293, 294, -1, - 294, 293, 295, -1, 295, 293, 296, -1, 296, 293, 276, -1, - 276, 293, 275, -1, 277, 297, 276, -1, 276, 297, 296, -1, - 296, 297, 298, -1, 299, 297, 300, -1, 300, 297, 277, -1, - 291, 292, 294, -1, 295, 296, 298, -1, 299, 300, 301, -1, - 283, 301, 300, -1, 283, 300, 278, -1, 302, 283, 284, -1, - 302, 301, 283, -1, 275, 288, 272, -1, 271, 272, 288, -1, - 288, 303, 271, -1, 271, 303, 215, -1, 215, 303, 214, -1, - 214, 303, 304, -1, 304, 303, 289, -1, 289, 303, 288, -1, - 275, 292, 288, -1, 278, 300, 277, -1, 210, 305, 84, -1, - 84, 305, 83, -1, 83, 305, 306, -1, 306, 305, 307, -1, - 307, 305, 308, -1, 308, 305, 304, -1, 304, 305, 210, -1, - 289, 308, 304, -1, 290, 309, 289, -1, 289, 309, 310, -1, - 310, 309, 311, -1, 311, 309, 312, -1, 312, 309, 290, -1, - 289, 310, 308, -1, 307, 308, 310, -1, 310, 313, 307, -1, - 307, 313, 314, -1, 314, 313, 315, -1, 315, 313, 316, -1, - 316, 313, 311, -1, 311, 313, 310, -1, 318, 317, 319, -1, - 319, 317, 312, -1, 312, 317, 320, -1, 320, 317, 321, -1, - 321, 317, 322, -1, 322, 317, 318, -1, 301, 323, 318, -1, - 318, 323, 322, -1, 322, 323, 321, -1, 321, 323, 324, -1, - 324, 323, 302, -1, 302, 323, 301, -1, 312, 290, 319, -1, - 284, 324, 302, -1, 284, 325, 324, -1, 324, 325, 326, -1, - 326, 325, 327, -1, 327, 325, 328, -1, 328, 325, 286, -1, - 286, 325, 284, -1, 324, 326, 321, -1, 320, 321, 326, -1, - 326, 329, 320, -1, 320, 329, 330, -1, 330, 329, 331, -1, - 331, 329, 332, -1, 332, 329, 327, -1, 327, 329, 326, -1, - 320, 330, 312, -1, 330, 311, 312, -1, 311, 330, 316, -1, - 316, 330, 331, -1, 286, 333, 328, -1, 334, 328, 333, -1, - 335, 328, 334, -1, 328, 335, 327, -1, 332, 327, 335, -1, - 332, 335, 336, -1, 332, 336, 337, -1, 332, 337, 338, -1, - 332, 338, 331, -1, 331, 339, 316, -1, 316, 339, 315, -1, - 315, 339, 340, -1, 340, 339, 341, -1, 341, 339, 338, -1, - 338, 339, 331, -1, 341, 338, 337, -1, 315, 340, 342, -1, - 315, 342, 314, -1, 307, 314, 306, -1, 83, 306, 314, -1, - 83, 314, 82, -1, 342, 82, 314, -1, 82, 342, 7, -1, - 79, 7, 342, -1, 214, 304, 210, -1, 344, 343, 345, -1, - 347, 346, 348, -1, 349, 348, 346, -1, 346, 350, 349, -1, - 351, 349, 350, -1, 351, 350, 352, -1, 353, 352, 350, -1, - 354, 350, 346, -1, 354, 346, 355, -1, 357, 356, 358, -1, - 358, 359, 360, -1, 357, 358, 360, -1, 355, 357, 360, -1, - 354, 355, 360, -1, 361, 354, 360, -1, 359, 361, 360, -1, - 362, 359, 358, -1, 362, 358, 356, -1, 362, 356, 363, -1, - 362, 363, 364, -1, 362, 364, 365, -1, 366, 365, 364, -1, - 364, 334, 366, -1, 334, 333, 366, -1, 286, 366, 333, -1, - 361, 359, 367, -1, 368, 361, 367, -1, 367, 369, 368, -1, - 370, 368, 369, -1, 371, 369, 367, -1, 365, 372, 373, -1, - 362, 365, 373, -1, 359, 362, 373, -1, 367, 359, 373, -1, - 371, 367, 373, -1, 372, 371, 373, -1, 371, 372, 374, -1, - 375, 374, 372, -1, 286, 376, 377, -1, 366, 286, 377, -1, - 365, 366, 377, -1, 372, 365, 377, -1, 375, 372, 377, -1, - 376, 375, 377, -1, 376, 378, 375, -1, 369, 379, 380, -1, - 378, 381, 382, -1, 375, 378, 382, -1, 374, 375, 382, -1, - 383, 374, 382, -1, 384, 383, 382, -1, 381, 384, 382, -1, - 383, 384, 385, -1, 374, 383, 385, -1, 371, 374, 385, -1, - 369, 371, 385, -1, 379, 369, 385, -1, 384, 379, 385, -1, - 368, 386, 387, -1, 361, 368, 387, -1, 354, 361, 387, -1, - 350, 354, 387, -1, 353, 350, 387, -1, 386, 353, 387, -1, - 353, 386, 388, -1, 389, 388, 386, -1, 369, 380, 370, -1, - 386, 368, 370, -1, 389, 386, 370, -1, 380, 389, 370, -1, - 389, 345, 388, -1, 345, 343, 390, -1, 388, 345, 390, -1, - 353, 388, 390, -1, 352, 353, 390, -1, 351, 352, 390, -1, - 391, 351, 390, -1, 343, 391, 390, -1, 393, 392, 394, -1, - 396, 395, 397, -1, 389, 395, 398, -1, 345, 389, 398, -1, - 344, 345, 398, -1, 399, 344, 398, -1, 400, 399, 398, -1, - 395, 400, 398, -1, 400, 395, 401, -1, 396, 401, 395, -1, - 378, 402, 381, -1, 378, 376, 402, -1, 402, 393, 394, -1, - 403, 381, 394, -1, 405, 404, 406, -1, 408, 407, 397, -1, - 394, 392, 409, -1, 403, 394, 409, -1, 404, 403, 409, -1, - 406, 404, 409, -1, 410, 406, 409, -1, 392, 410, 409, -1, - 410, 396, 411, -1, 406, 410, 411, -1, 405, 406, 411, -1, - 407, 405, 411, -1, 397, 407, 411, -1, 396, 397, 411, -1, - 397, 395, 412, -1, 408, 397, 412, -1, 380, 408, 412, -1, - 389, 380, 412, -1, 395, 389, 412, -1, 286, 285, 376, -1, - 413, 343, 344, -1, 415, 414, 393, -1, 416, 285, 268, -1, - 416, 417, 418, -1, 285, 416, 418, -1, 376, 285, 418, -1, - 402, 376, 418, -1, 393, 402, 418, -1, 415, 393, 418, -1, - 419, 415, 418, -1, 417, 419, 418, -1, 417, 420, 421, -1, - 421, 415, 419, -1, 417, 421, 419, -1, 421, 422, 415, -1, - 414, 415, 422, -1, 414, 422, 423, -1, 422, 424, 423, -1, - 425, 423, 424, -1, 426, 424, 422, -1, 414, 423, 427, -1, - 393, 414, 427, -1, 392, 393, 427, -1, 410, 392, 427, -1, - 396, 410, 427, -1, 401, 396, 427, -1, 423, 401, 427, -1, - 423, 425, 428, -1, 401, 423, 428, -1, 400, 401, 428, -1, - 399, 400, 428, -1, 429, 399, 428, -1, 425, 429, 428, -1, - 268, 269, 430, -1, 268, 430, 431, -1, 269, 252, 430, -1, - 432, 430, 252, -1, 416, 268, 431, -1, 417, 416, 431, -1, - 420, 417, 431, -1, 433, 420, 431, -1, 434, 433, 431, -1, - 430, 434, 431, -1, 435, 420, 433, -1, 435, 436, 437, -1, - 420, 435, 437, -1, 421, 420, 437, -1, 422, 421, 437, -1, - 426, 422, 437, -1, 436, 426, 437, -1, 432, 436, 438, -1, - 430, 432, 438, -1, 434, 430, 438, -1, 433, 434, 438, -1, - 435, 433, 438, -1, 436, 435, 438, -1, 426, 436, 439, -1, - 424, 426, 440, -1, 441, 424, 440, -1, 439, 441, 440, -1, - 426, 439, 440, -1, 246, 442, 443, -1, 253, 246, 443, -1, - 252, 253, 443, -1, 432, 252, 443, -1, 436, 432, 443, -1, - 439, 436, 443, -1, 444, 439, 443, -1, 442, 444, 443, -1, - 446, 445, 447, -1, 447, 448, 449, -1, 449, 439, 444, -1, - 447, 449, 444, -1, 446, 447, 444, -1, 442, 446, 444, -1, - 247, 233, 450, -1, 246, 247, 450, -1, 442, 246, 450, -1, - 446, 442, 450, -1, 445, 446, 450, -1, 233, 445, 450, -1, - 445, 451, 452, -1, 447, 445, 452, -1, 448, 447, 452, -1, - 453, 448, 452, -1, 454, 453, 452, -1, 451, 454, 452, -1, - 456, 455, 457, -1, 458, 456, 457, -1, 454, 458, 457, -1, - 453, 454, 457, -1, 448, 453, 457, -1, 449, 448, 457, -1, - 439, 449, 457, -1, 441, 439, 457, -1, 459, 441, 457, -1, - 460, 459, 457, -1, 455, 460, 457, -1, 462, 461, 463, -1, - 461, 455, 456, -1, 463, 461, 456, -1, 458, 463, 456, -1, - 231, 225, 464, -1, 234, 231, 465, -1, 233, 234, 465, -1, - 445, 233, 465, -1, 451, 445, 465, -1, 464, 451, 465, -1, - 231, 464, 465, -1, 464, 463, 466, -1, 451, 464, 466, -1, - 454, 451, 466, -1, 458, 454, 466, -1, 463, 458, 466, -1, - 225, 203, 467, -1, 464, 225, 467, -1, 463, 464, 467, -1, - 462, 463, 467, -1, 203, 462, 467, -1, 468, 459, 460, -1, - 460, 469, 468, -1, 468, 470, 471, -1, 470, 472, 413, -1, - 471, 429, 473, -1, 468, 471, 473, -1, 459, 468, 473, -1, - 441, 459, 473, -1, 424, 441, 473, -1, 425, 424, 473, -1, - 429, 425, 473, -1, 429, 471, 474, -1, 399, 429, 474, -1, - 344, 399, 474, -1, 413, 344, 474, -1, 470, 413, 474, -1, - 471, 470, 474, -1, 413, 472, 475, -1, 343, 413, 475, -1, - 391, 343, 475, -1, 476, 391, 475, -1, 477, 476, 475, -1, - 478, 477, 475, -1, 472, 478, 475, -1, 479, 461, 480, -1, - 462, 480, 461, -1, 479, 481, 482, -1, 461, 479, 482, -1, - 455, 461, 482, -1, 460, 455, 482, -1, 469, 460, 482, -1, - 481, 469, 482, -1, 483, 481, 479, -1, 485, 484, 200, -1, - 187, 486, 485, -1, 204, 200, 487, -1, 203, 204, 487, -1, - 462, 203, 487, -1, 480, 462, 487, -1, 484, 480, 487, -1, - 200, 484, 487, -1, 485, 200, 187, -1, 484, 485, 488, -1, - 480, 484, 488, -1, 479, 480, 488, -1, 483, 479, 488, -1, - 486, 483, 488, -1, 485, 486, 488, -1, 490, 489, 491, -1, - 492, 490, 491, -1, 483, 492, 491, -1, 481, 483, 491, -1, - 469, 481, 491, -1, 468, 469, 491, -1, 470, 468, 491, -1, - 472, 470, 491, -1, 478, 472, 491, -1, 489, 478, 491, -1, - 492, 483, 493, -1, 494, 489, 490, -1, 492, 494, 490, -1, - 496, 495, 494, -1, 187, 178, 497, -1, 486, 187, 497, -1, - 483, 486, 497, -1, 493, 483, 497, -1, 498, 493, 497, -1, - 178, 498, 497, -1, 499, 494, 500, -1, 501, 499, 500, -1, - 502, 501, 500, -1, 493, 502, 500, -1, 492, 493, 500, -1, - 494, 492, 500, -1, 496, 494, 499, -1, 496, 499, 501, -1, - 503, 502, 493, -1, 503, 493, 498, -1, 503, 498, 178, -1, - 503, 178, 177, -1, 177, 174, 503, -1, 163, 504, 174, -1, - 502, 503, 505, -1, 505, 506, 502, -1, 507, 502, 506, -1, - 501, 502, 508, -1, 509, 501, 508, -1, 507, 509, 508, -1, - 502, 507, 508, -1, 511, 510, 512, -1, 512, 513, 511, -1, - 504, 511, 513, -1, 512, 514, 507, -1, 512, 507, 506, -1, - 512, 506, 513, -1, 515, 513, 506, -1, 174, 504, 515, -1, - 503, 174, 515, -1, 505, 503, 515, -1, 506, 505, 515, -1, - 504, 513, 515, -1, 517, 516, 518, -1, 517, 518, 519, -1, - 517, 519, 520, -1, 509, 520, 519, -1, 516, 517, 521, -1, - 522, 521, 517, -1, 514, 522, 523, -1, 507, 514, 523, -1, - 509, 507, 523, -1, 520, 509, 523, -1, 517, 520, 523, -1, - 522, 517, 523, -1, 524, 522, 514, -1, 526, 525, 510, -1, - 526, 510, 511, -1, 526, 511, 527, -1, 164, 158, 528, -1, - 163, 164, 528, -1, 504, 163, 528, -1, 511, 504, 528, -1, - 527, 511, 528, -1, 529, 527, 528, -1, 158, 529, 528, -1, - 158, 159, 530, -1, 158, 530, 529, -1, 527, 529, 530, -1, - 527, 530, 531, -1, 527, 531, 532, -1, 527, 532, 526, -1, - 525, 526, 532, -1, 525, 532, 533, -1, 534, 533, 532, -1, - 536, 535, 537, -1, 524, 538, 539, -1, 535, 539, 538, -1, - 522, 524, 540, -1, 521, 522, 540, -1, 541, 521, 540, -1, - 542, 541, 540, -1, 539, 542, 540, -1, 524, 539, 540, -1, - 510, 525, 543, -1, 512, 510, 543, -1, 514, 512, 543, -1, - 524, 514, 543, -1, 538, 524, 543, -1, 525, 538, 543, -1, - 533, 534, 544, -1, 525, 533, 544, -1, 538, 525, 544, -1, - 535, 538, 544, -1, 537, 535, 544, -1, 534, 537, 544, -1, - 546, 545, 547, -1, 549, 548, 550, -1, 550, 551, 542, -1, - 541, 542, 551, -1, 541, 551, 552, -1, 551, 553, 552, -1, - 535, 536, 554, -1, 539, 535, 554, -1, 542, 539, 554, -1, - 550, 542, 554, -1, 549, 550, 554, -1, 536, 549, 554, -1, - 550, 548, 555, -1, 551, 550, 555, -1, 553, 551, 555, -1, - 545, 553, 555, -1, 547, 545, 555, -1, 548, 547, 555, -1, - 112, 556, 127, -1, 123, 127, 556, -1, 123, 556, 557, -1, - 553, 557, 556, -1, 553, 556, 552, -1, 545, 546, 558, -1, - 553, 545, 558, -1, 557, 553, 558, -1, 123, 557, 558, -1, - 122, 123, 558, -1, 121, 122, 558, -1, 559, 121, 558, -1, - 546, 559, 558, -1, 111, 107, 560, -1, 112, 560, 561, -1, - 556, 112, 561, -1, 552, 556, 561, -1, 541, 552, 561, -1, - 521, 541, 561, -1, 516, 521, 561, -1, 560, 516, 561, -1, - 560, 112, 111, -1, 562, 107, 563, -1, 565, 564, 566, -1, - 566, 562, 565, -1, 563, 565, 562, -1, 562, 566, 567, -1, - 107, 562, 567, -1, 560, 107, 567, -1, 516, 560, 567, -1, - 518, 516, 567, -1, 566, 518, 567, -1, 569, 568, 495, -1, - 509, 519, 570, -1, 501, 509, 570, -1, 496, 501, 570, -1, - 495, 496, 570, -1, 569, 495, 570, -1, 519, 569, 570, -1, - 568, 569, 571, -1, 495, 568, 572, -1, 494, 495, 572, -1, - 489, 494, 572, -1, 478, 489, 572, -1, 477, 478, 572, -1, - 573, 477, 572, -1, 571, 573, 572, -1, 568, 571, 572, -1, - 569, 574, 571, -1, 573, 571, 575, -1, 573, 575, 576, -1, - 564, 577, 578, -1, 566, 564, 578, -1, 518, 566, 578, -1, - 519, 518, 578, -1, 569, 519, 578, -1, 574, 569, 578, -1, - 577, 574, 578, -1, 577, 564, 579, -1, 580, 579, 564, -1, - 582, 581, 583, -1, 584, 582, 583, -1, 576, 584, 583, -1, - 573, 576, 583, -1, 477, 573, 583, -1, 476, 477, 583, -1, - 391, 476, 583, -1, 351, 391, 583, -1, 349, 351, 583, -1, - 348, 349, 583, -1, 581, 348, 583, -1, 585, 348, 581, -1, - 348, 586, 587, -1, 348, 587, 347, -1, 588, 347, 589, -1, - 590, 588, 589, -1, 591, 590, 589, -1, 586, 591, 589, -1, - 587, 586, 589, -1, 347, 587, 589, -1, 590, 591, 592, -1, - 593, 590, 592, -1, 594, 593, 592, -1, 595, 594, 592, -1, - 591, 595, 592, -1, 593, 594, 596, -1, 597, 593, 596, -1, - 588, 590, 598, -1, 588, 598, 599, -1, 601, 600, 599, -1, - 590, 593, 602, -1, 598, 590, 602, -1, 599, 598, 602, -1, - 601, 599, 602, -1, 603, 601, 602, -1, 597, 603, 602, -1, - 593, 597, 602, -1, 605, 604, 606, -1, 608, 607, 609, -1, - 609, 610, 606, -1, 611, 606, 610, -1, 605, 606, 611, -1, - 597, 596, 612, -1, 603, 597, 612, -1, 606, 603, 612, -1, - 609, 606, 612, -1, 608, 609, 612, -1, 596, 608, 612, -1, - 604, 580, 613, -1, 601, 603, 614, -1, 600, 601, 614, -1, - 613, 600, 614, -1, 604, 613, 614, -1, 606, 604, 614, -1, - 603, 606, 614, -1, 579, 580, 615, -1, 616, 579, 615, -1, - 617, 616, 615, -1, 605, 617, 615, -1, 604, 605, 615, -1, - 580, 604, 615, -1, 577, 579, 616, -1, 616, 618, 577, -1, - 574, 577, 618, -1, 619, 571, 574, -1, 619, 574, 618, -1, - 619, 618, 620, -1, 616, 617, 621, -1, 618, 616, 621, -1, - 620, 618, 621, -1, 622, 620, 621, -1, 623, 622, 621, -1, - 617, 623, 621, -1, 622, 623, 624, -1, 625, 620, 622, -1, - 626, 625, 622, -1, 611, 610, 627, -1, 605, 611, 627, -1, - 617, 605, 627, -1, 623, 617, 627, -1, 624, 623, 627, -1, - 628, 624, 627, -1, 629, 628, 627, -1, 610, 629, 627, -1, - 630, 584, 576, -1, 630, 576, 626, -1, 575, 626, 576, -1, - 625, 626, 631, -1, 620, 625, 631, -1, 619, 620, 631, -1, - 571, 619, 631, -1, 575, 571, 631, -1, 626, 575, 631, -1, - 632, 624, 628, -1, 633, 632, 634, -1, 635, 633, 634, -1, - 630, 632, 633, -1, 624, 632, 636, -1, 622, 624, 636, -1, - 626, 622, 636, -1, 630, 626, 636, -1, 632, 630, 636, -1, - 637, 581, 582, -1, 633, 635, 638, -1, 630, 633, 638, -1, - 584, 630, 638, -1, 582, 584, 638, -1, 637, 582, 638, -1, - 635, 637, 638, -1, 639, 585, 640, -1, 641, 639, 640, -1, - 634, 641, 640, -1, 640, 585, 642, -1, 634, 640, 642, -1, - 635, 634, 642, -1, 637, 635, 642, -1, 581, 637, 642, -1, - 585, 581, 642, -1, 644, 643, 639, -1, 644, 639, 645, -1, - 646, 644, 645, -1, 629, 646, 645, -1, 628, 629, 645, -1, - 632, 628, 645, -1, 634, 632, 645, -1, 641, 634, 645, -1, - 639, 641, 645, -1, 647, 607, 648, -1, 647, 648, 643, -1, - 649, 643, 648, -1, 609, 607, 650, -1, 610, 609, 650, -1, - 629, 610, 650, -1, 646, 629, 650, -1, 644, 646, 650, -1, - 643, 644, 650, -1, 647, 643, 650, -1, 607, 647, 650, -1, - 594, 595, 651, -1, 596, 594, 651, -1, 608, 596, 651, -1, - 607, 608, 651, -1, 648, 607, 651, -1, 595, 648, 651, -1, - 649, 586, 652, -1, 643, 649, 652, -1, 639, 643, 652, -1, - 585, 639, 652, -1, 348, 585, 652, -1, 586, 348, 652, -1, - 586, 649, 653, -1, 591, 586, 653, -1, 595, 591, 653, -1, - 648, 595, 653, -1, 649, 648, 653, -1, 319, 290, 291, -1, - 319, 291, 294, -1, 319, 294, 295, -1, 319, 295, 318, -1, - 318, 298, 301, -1, 301, 298, 299, -1, 381, 403, 404, -1, - 405, 384, 404, -1, 379, 384, 405, -1, 379, 405, 407, -1, - 380, 379, 407, -1, 394, 381, 402, -1, 408, 380, 407, -1, - 318, 295, 298, -1, 299, 298, 297, -1, 381, 404, 384, -1, - 257, 250, 256, -1] - } - } - ] -} diff --git a/tests/media/auxiliary_files/sky.jpg b/tests/media/auxiliary_files/sky.jpg deleted file mode 100644 index 8122837b02..0000000000 Binary files a/tests/media/auxiliary_files/sky.jpg and /dev/null differ diff --git a/tests/media/auxiliary_files/subs.ismt b/tests/media/auxiliary_files/subs.ismt deleted file mode 100644 index 72e95f226a..0000000000 Binary files a/tests/media/auxiliary_files/subs.ismt and /dev/null differ diff --git a/tests/media/auxiliary_files/subtitle.srt b/tests/media/auxiliary_files/subtitle.srt deleted file mode 100644 index ffc9b14327..0000000000 --- a/tests/media/auxiliary_files/subtitle.srt +++ /dev/null @@ -1,23 +0,0 @@ -1 -00:00:01,262 --> 00:00:02,787 -This is a sub-title -on 2 lines - -2 -00:00:03,418 --> 00:00:04,817 -with italic support - -3 -00:00:05,986 --> 00:00:06,419 -and also bold - -4 -00:00:07,223 --> 00:00:08,487 -and even bold -italic lines... - -5 -00:00:09,223 --> 00:00:10,487 -and unicode: é ï ö Ä - - diff --git a/tests/media/auxiliary_files/subtitle.sub b/tests/media/auxiliary_files/subtitle.sub deleted file mode 100644 index 116a978648..0000000000 --- a/tests/media/auxiliary_files/subtitle.sub +++ /dev/null @@ -1,5 +0,0 @@ -{25}{50}This is a sub-title -{75}{100}Another subtitle|on 2 lines -{150}{200}With unicode: é ï ö Ä - - diff --git a/tests/media/auxiliary_files/subtitle.ttxt b/tests/media/auxiliary_files/subtitle.ttxt deleted file mode 100644 index 9d6120c789..0000000000 --- a/tests/media/auxiliary_files/subtitle.ttxt +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - -