Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Commit

Permalink
adds integration tests based on image comparison (#42)
Browse files Browse the repository at this point in the history
Fixes #41 (for now, more to do here but it's a start)
  • Loading branch information
lnihlen committed Jan 28, 2020
1 parent 444c79c commit 6512a84
Show file tree
Hide file tree
Showing 45 changed files with 1,299 additions and 454 deletions.
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
bin
build
third_party/vulkan-dev/build

third_party/sclang-dev/build
37 changes: 28 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,44 @@ cache: ccache

addons:
apt:
sources:
- sourceline: 'deb https://packages.lunarg.com/vulkan bionic main'
key_url: 'http://packages.lunarg.com/lunarg-signing-key-pub.asc'
update: true
packages: &common_packages
- build-essential
- clang-8
- clang-format-8
- cmake
- doxygen
- glslang-dev
- gperf
- imagemagick
- libasound2-dev
- libavcodec-dev
- libavformat-dev
- libc++-8-dev
- libc++abi-8-dev
- libfftw3-dev
- libicu-dev
- libjack-jackd2-dev
- libreadline6-dev
- libudev-dev
- libvulkan-dev
- libwayland-dev
- libxcursor-dev
- libxi-dev
- libxinerama-dev
- libxrandr-dev
- llvm-8-dev
- pkg-config
- python3-distutils
- supercollider-language
- python3-yaml
- shaderc
- spirv-headers
- spirv-tools
- vulkan-headers
- vulkan-validationlayers
- zlib1g

env:
Expand All @@ -36,23 +54,24 @@ before_install:

before_script:
- mkdir build
- mkdir third_party/vulkan-dev/build && cd third_party/vulkan-dev/build
- cmake -DSCIN_USE_OWN_VULKAN=ON ..
- mkdir third_party/sclang-dev/build && cd third_party/sclang-dev/build
- cmake ..
- make -j2 install
- make -j2 local-vulkan-utils
- cd ../../../build
- cmake -DSCIN_BUILD_DOCS=ON -DSCIN_USE_OWN_VULKAN=ON -DCMAKE_BUILD_TYPE=Coverage -DLLVM_COV="llvm-cov-8" -DLLVM_PROFDATA="llvm-profdata-8" -DPYTHON_EXECUTABLE=`which python3` ..
- cmake -DSCIN_BUILD_DOCS=ON -DCMAKE_BUILD_TYPE=Coverage -DLLVM_COV="llvm-cov-8" -DLLVM_PROFDATA="llvm-profdata-8" -DPYTHON_EXECUTABLE=`which python3` -DSCIN_SCLANG=$TRAVIS_BUILD_DIR/build/install-ext/bin/sclang ..

script:
- make -j2
- make coverage_report
- make lintall
- make docs
- make -j2 swiftshader-local
- make -j2 compare_images
- make -j2 coverage_report
- make -j2 lintall
- make -j2 docs

before_deploy:
- mkdir -p $HOME/artifacts/coverage
- cp $TRAVIS_BUILD_DIR/build/src/scinsynth_coverage.json $HOME/artifacts
- cp -R $TRAVIS_BUILD_DIR/build/doc $HOME/artifacts
- cp -R $TRAVIS_BUILD_DIR/build/report $HOME/artifacts

deploy:
- provider: s3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,50 @@ definitionlist::
## Asynchronous. || Replies to sender with strong::/scin_done:: just before completion.
::

subsection::/scin_status

Query the status. Replies to sender with the following message:

definitionlist::
## /scin_status.reply || table::
## strong::int:: || number of running Scinths.
## strong::int:: || number of groups.
## strong::int:: || number of loaded Scinth defintions.
## strong::int:: || number of warnings in log.
## strong::int:: || number of errors in log.
## strong::double:: || approximate graphics memory consumed, in bytes.
## strong::double:: || approximage graphics memory available, in bytes. Some graphics devices don't support this statistic, in which case it will be 0.
## strong::int:: || target frame rate in frames per second (can be -1 or 0)
## strong::double:: || computed mean framerate.
## strong::int:: || number of dropped frames, if running real time, 0 otherwise.
::

note:: teletype::/status:: messages won't be posted, if the server is in teletype::/dumpOSC:: mode::
::

subsection::/scin_dumpOSC
Log incoming OSC messages.

table::
## strong::int:: || 0 to disable logging. Nonzero to enable.
::

subsection::/scin_sync

Notify when all outstanding aync commands have completed.

Replies with a teletype::/scin_synced:: message when all asynchronous commands received before this one have completed. The reply will contain the sent unique ID.

definitionlist::
## Asynchronous. || Replies to sender with strong::/scin_synced, ID:: when complete.
::


subsection::/scin_logLevel
Set the logging level for the log streams. Lower log levels are inclusive of all higher log levels, so they tend to log more, and the highest log level turns off logging. This overrides any command-line argument supplied to scinsynth at startup.

This command is similar to the SuperCollider server command teletype::/error:: but offers more options for access to the built-in logging.

table::
## strong::int:: || log level
::
Expand Down Expand Up @@ -179,5 +213,19 @@ table::
::

definitionlist::
## Asynchronous. || Replies to sender with strong::/scin_done:: followed by strong::/scin_nrt_screenShot:: and the name of the file saved when complete.
## Asynchronous. || Replies to sender twice with updates. The first response is strong::/scin_nrt_screenShot.ready::, followed by the file name, which is sent once the screenshot is ready to record, and lastly a boolean with file status. The second reponse is on completion of the saving of the screenshot file, the server replies with strong::/scin_done:: followed by strong::/scin_nrt_screenShot::, the name of the file saved, and a boolean with status on completion.
::

subsection::/scin_nrt_advanceFrame

If framerate is at zero, renders one frame at the current time and then advances the time by the supplied fractional increment, in seconds.

table::
## strong::int:: || numerator for fractional time advancement
## strong::int:: || denominator for fractional time advancement
::

definitionlist::
## Asynchronous. || Replies to sender with strong::/scin_done:: followed by strong::/scin_nrt_advanceFrame::.
::

0 comments on commit 6512a84

Please sign in to comment.