diff --git a/.travis.yml b/.travis.yml index 743136f71..7b15abc94 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,9 +3,11 @@ sudo: required matrix: include: - compiler: gcc - env: PLATFORM=device + env: PLATFORM=device EXT=elf - compiler: clang - env: PLATFORM=simulator + env: PLATFORM=simulator EXT=elf + - compiler: clang + env: PLATFORM=blackbox TOOLCHAIN=host-clang EXT=bin QUIZ_USE_CONSOLE=1 os: linux before_install: @@ -15,5 +17,6 @@ before_install: - if [ "$CXX" = "g++" ]; then export PATH=gcc-arm-none-eabi-6-2017-q2-update/bin:$PATH; fi - if [ "$PLATFORM" = "simulator" ]; then sudo apt-get install libfltk1.3-dev; fi script: -- make clean && make app.elf -- make clean && make test.elf +- make clean && make app.$EXT +- make clean && make test.$EXT +- if [ "$PLATFORM" = "blackbox" ]; then ./test.$EXT; fi diff --git a/build/config.mak b/build/config.mak index f0a73d81f..f9eb4b05e 100644 --- a/build/config.mak +++ b/build/config.mak @@ -17,7 +17,9 @@ include build/toolchain.$(TOOLCHAIN).mak OS_WITH_ONBOARDING_APP ?= 1 OS_WITH_SOFTWARE_UPDATE_PROMPT ?= 1 +QUIZ_USE_CONSOLE ?= 0 SFLAGS += -DDEBUG=$(DEBUG) SFLAGS += -DOS_WITH_ONBOARDING_APP=$(OS_WITH_ONBOARDING_APP) SFLAGS += -DOS_WITH_SOFTWARE_UPDATE_PROMPT=$(OS_WITH_SOFTWARE_UPDATE_PROMPT) +SFLAGS += -DQUIZ_USE_CONSOLE=$(QUIZ_USE_CONSOLE) diff --git a/ion/src/shared/console_stdio.cpp b/ion/src/shared/console_stdio.cpp index bb3069fbc..fda0fa3ab 100644 --- a/ion/src/shared/console_stdio.cpp +++ b/ion/src/shared/console_stdio.cpp @@ -9,7 +9,7 @@ char readChar() { } void writeChar(char c) { - printf("%c", c); + putchar(c); fflush(stdout); } diff --git a/quiz/src/runner.cpp b/quiz/src/runner.cpp index fd6cfca17..701e587cb 100644 --- a/quiz/src/runner.cpp +++ b/quiz/src/runner.cpp @@ -4,6 +4,9 @@ #include void print(const char * message) { +#if QUIZ_USE_CONSOLE + Ion::Console::writeLine(message); +#else static int line_y = 0; KDContext * ctx = KDIonContext::sharedContext(); int line_height = KDText::stringSize("M").height(); @@ -13,6 +16,7 @@ void print(const char * message) { line_y = 0; // Clear screen maybe? } +#endif } void ion_app() { @@ -24,7 +28,9 @@ void ion_app() { i++; } print("ALL TESTS FINISHED"); +#if !QUIZ_USE_CONSOLE while (1) { Ion::msleep(1000); } +#endif }