diff --git a/quad/scripts/tests/run_virtual_test_flight.rb b/quad/scripts/tests/run_virtual_test_flight.rb index 9893fd2f46e7aa7fb9541510346739a4682bda6d..17e6bc732e9549101b38ec9fd080493b5f7afa84 100644 --- a/quad/scripts/tests/run_virtual_test_flight.rb +++ b/quad/scripts/tests/run_virtual_test_flight.rb @@ -11,10 +11,12 @@ require script_dir + "/testing_library" bin_dir = script_dir + "/../../bin/" Dir.chdir(bin_dir) +puts("Firing up the quad...") + # Start virtual quad -quad = Process.spawn("./virt-quad") +quad = Process.spawn("./virt-quad -q") -sleep 1 +delay_spin_cursor(3) ################## # Begin Flight! @@ -37,7 +39,7 @@ begin end puts("Hovering for 10 seconds") - sleep 10 + delay_spin_cursor(10) puts("Relaxing thrust to zero") i = THROTTLE_MID diff --git a/quad/scripts/tests/test_safety_checks.rb b/quad/scripts/tests/test_safety_checks.rb index ae281c259d45d1dd52c2f1c97b3dbe009be096f2..6faa9546f714a35875d0467938263e714f9c753e 100644 --- a/quad/scripts/tests/test_safety_checks.rb +++ b/quad/scripts/tests/test_safety_checks.rb @@ -20,11 +20,11 @@ Timeout::timeout(30) { sleep 1 # Start virtual quad - quad_pid = Process.spawn("./virt-quad", + quad_pid = Process.spawn("./virt-quad -q", { :rlimit_as => 536870912, # 512 MiB total RAM :rlimit_stack => 1048576}) # 1 MiB stack - sleep 5 + delay_spin_cursor(5) ################# # Begin Tests @@ -83,7 +83,7 @@ Timeout::timeout(30) { puts averages, "(#{average})" assert average.between?(THROTTLE_EIGHTH, MOTOR_MAX) - # Check that gear switch kills the motors + puts("Check that gear switch kills the motors") # (and that light goes off) File.write(GEAR, GEAR_OFF) sleep 0.1 diff --git a/quad/scripts/tests/test_unix_uart.rb b/quad/scripts/tests/test_unix_uart.rb index d3164238fd55c5b0783ade10c46714483f42edf1..1c9b6a82e4fb3c84ded4038e666378c8b4a5016f 100644 --- a/quad/scripts/tests/test_unix_uart.rb +++ b/quad/scripts/tests/test_unix_uart.rb @@ -19,11 +19,11 @@ Timeout::timeout(30) { sleep 1 # Start virtual quad - quad_pid = Process.spawn("./virt-quad", + quad_pid = Process.spawn("./virt-quad -q", { :rlimit_as => 536870912, # 512 MiB total RAM :rlimit_stack => 1048576}) # 1 MiB stack - sleep 5 + delay_spin_cursor(5) ################# # Begin Tests diff --git a/quad/scripts/tests/testing_library.rb b/quad/scripts/tests/testing_library.rb index a7c4c1ed8f5d86f3c914416eb99aae2986759895..668e2bad9e36bdb39256b3b2aa4cb2be550c06e4 100644 --- a/quad/scripts/tests/testing_library.rb +++ b/quad/scripts/tests/testing_library.rb @@ -75,3 +75,15 @@ def check_led(is_on) led = read_fifo_num(LED) assert_equal(led, is_on) end + +def delay_spin_cursor(delay) + fps = 10 + chars = %w[| / - \\] + iteations = delay * fps + iter = 0 + iteations.times() do + print chars[(iter+=1) % chars.length] + sleep (1.0/fps) + print "\b" + end +end diff --git a/quad/src/virt_quad/main.c b/quad/src/virt_quad/main.c index a87b8013f5037d6a2db5badd74c7166f681e3e8c..f703f6ab77943a760ce7db7a1604ec672edb4e7b 100644 --- a/quad/src/virt_quad/main.c +++ b/quad/src/virt_quad/main.c @@ -1,6 +1,8 @@ #include <stdio.h> +#include <unistd.h> #include "hw_impl_unix.h" #include "quad_app.h" +#include <fcntl.h> int setup_hardware(hardware_t *hardware) { hardware->i2c = create_unix_i2c(); @@ -14,8 +16,21 @@ int setup_hardware(hardware_t *hardware) { return 0; } -int main() -{ +int main(int argc, char *argv[]) { + int fd, opt; + while ((opt = getopt(argc, argv, "q")) != -1) { + switch (opt) { + case 'q': + fd = open("/dev/null", O_WRONLY); + close(STDOUT_FILENO); + dup2(STDOUT_FILENO, fd); + break; + default: /* '?' */ + fprintf(stderr, "Usage: %s [-q]\n", argv[0]); + exit(EXIT_FAILURE); + } + } + quad_main(setup_hardware); return 0; }