Changing the testing to not run hardware tests by default.

Started to create some sim testing for the Microjet.
Removed the test_all_examples target.
This commit is contained in:
Bernard Davison
2012-03-21 13:56:33 +11:00
parent 9bfb5ef9a2
commit 2c9f962523
5 changed files with 199 additions and 15 deletions
+1 -4
View File
@@ -274,8 +274,5 @@ sw/simulator/launchsitl:
chmod a+x $@
test: all replace_current_conf_xml
cd tests; $(MAKE) $(@)
test_all_example_airframes: replace_current_conf_xml
cd tests; $(MAKE) $(@) TARGET_BOARD=examples
cd tests; $(MAKE) test
@@ -12,7 +12,7 @@ $|++;
# Make the airframe
my $make_compile_options = "AIRCRAFT=LisaLv11_Booz2v12_RC clean_ac ap.compile";
my $compile_output = run_program(
"Attempting to build and upload the firmware.",
"Attempting to build the firmware.",
$ENV{'PAPARAZZI_SRC'},
"make $make_compile_options",
0,1);
@@ -31,25 +31,24 @@ unlike($upload_output, '/\bError\b/i', "The upload output does not contain the w
# Start the server process
my $server_command = "$ENV{'PAPARAZZI_HOME'}/sw/ground_segment/tmtc/server";
my $server_options = "";
my $server = Proc::Background->new($server_command, $server_options);
my @server_options = qw(-n)
my $server = Proc::Background->new($server_command, @server_options);
sleep 2; # The service should die in this time if there's an error
ok($server->alive(), "The server started successfully");
ok($server->alive(), "The server process started successfully");
# Start the link process
my $link_command = "$ENV{'PAPARAZZI_HOME'}/sw/ground_segment/tmtc/link";
my @link_options = qw(-d /dev/tty.usbserial-000013FD -s 57600 -transport xbee -xbee_addr 123);
#my @link_options = qw(-d /dev/tty.usbserial-000013FD -s 57600);
sleep 2; # The service should die in this time if there's an error
my $link = Proc::Background->new($link_command, @link_options);
ok($link->alive(), "The link started successfully");
ok($link->alive(), "The link process started successfully");
# Open the Ivy bus and read from it...
# TODO: learn how to read and write to the Ivy bus
# Shutdown the server and link processes
ok($server->die(), "The server shutdown successfully.");
ok($link->die(), "The link shutdown successfully.");
ok($server->die(), "The server process shutdown successfully.");
ok($link->die(), "The link process shutdown successfully.");
################################################################################
# functions used by this test script.
@@ -0,0 +1,94 @@
#!/usr/bin/perl -w
use Test::More tests => 7;
use lib "$ENV{'PAPARAZZI_SRC'}/tests/lib";
use Program;
use Proc::Background;
use Ivy;
$|++;
####################
# Make the airframe
my $make_compile_options = "AIRCRAFT=LisaLv11_Booz2v12_RC clean_ac ap.compile";
my $compile_output = run_program(
"Attempting to build the firmware.",
$ENV{'PAPARAZZI_SRC'},
"make $make_compile_options",
0,1);
unlike($compile_output, '/Aircraft \'LisaLv11_Booz2v12_RC\' not found in/', "The compile output does not contain the message \"Aircraft \'LisaLv11_Booz2v12_RC\' not found in\"");
unlike($compile_output, '/\bError\b/i', "The compile output does not contain the word \"Error\"");
####################
# Upload the airframe
my $make_upload_options = "AIRCRAFT=LisaLv11_Booz2v12_RC BOARD_SERIAL=LISA-L-000154 ap.upload";
my $upload_output = run_program(
"Attempting to build and upload the firmware.",
$ENV{'PAPARAZZI_SRC'},
"make $make_upload_options",
0,1);
unlike($upload_output, '/\bError\b/i', "The upload output does not contain the word \"Error\"");
# Start the server process
my $server_command = "$ENV{'PAPARAZZI_HOME'}/sw/ground_segment/tmtc/server";
my @server_options = qw(-n)
my $server = Proc::Background->new($server_command, @server_options);
sleep 2; # The service should die in this time if there's an error
ok($server->alive(), "The server process started successfully");
# Start the link process
my $link_command = "$ENV{'PAPARAZZI_HOME'}/sw/ground_segment/tmtc/link";
my @link_options = qw(-d /dev/tty.usbserial-000013FD -s 57600 -transport xbee -xbee_addr 123);
sleep 2; # The service should die in this time if there's an error
my $link = Proc::Background->new($link_command, @link_options);
ok($link->alive(), "The link process started successfully");
# Open the Ivy bus and read from it...
# TODO: learn how to read and write to the Ivy bus
# Shutdown the server and link processes
ok($server->die(), "The server process shutdown successfully.");
ok($link->die(), "The link process shutdown successfully.");
################################################################################
# functions used by this test script.
sub run_program
{
my $message = shift;
my $dir = shift;
my $command = shift;
my $verbose = shift;
my $dont_fail_on_error = shift;
warn "$message\n" if $verbose;
if (defined $dir)
{
$command = "cd $dir;" . $command;
}
my $prog = new Program("bash");
my $fh = $prog->open("-c \"$command\"");
warn "Running command: \"". $prog->last_command() ."\"\n" if $verbose;
$fh->autoflush(1);
my @output;
while (<$fh>)
{
warn $_ if $verbose;
chomp $_;
push @output, $_;
}
$fh->close;
my $exit_status = $?/256;
unless ($exit_status == 0)
{
if ($dont_fail_on_error)
{
warn "Error: The command \"". $prog->last_command() ."\" failed to complete successfully. Exit status: $exit_status\n" if $verbose;
}
else
{
die "Error: The command \"". $prog->last_command() ."\" failed to complete successfully. Exit status: $exit_status\n";
}
}
return wantarray ? @output : join "\n", @output;
}
+13 -3
View File
@@ -1,10 +1,20 @@
Q = @
PERL = /usr/bin/perl
TEST_VERBOSE = 0
ifeq ($(TARGET_BOARD),)
TARGET_BOARD = *
NON_TEST_DIRS = lib|results
HARDWARE_REGEX = Lisa|Tiny|Umarim
HARDWARE_TEST_DIRS = $(shell find -L * -d 0 -type d | grep -Ev "$(NON_TEST_DIRS)" | grep -E "$(HARDWARE_REGEX)")
NON_HARDWARE_TEST_DIRS = $(shell find -L * -d 0 -type d | grep -Ev "$(NON_TEST_DIRS)" | grep -Ev "$(HARDWARE_REGEX)")
ifneq ($(TARGET_BOARD),)
TEST_DIRECTORIES = $(TARGET_BOARD)
else
ifeq ($(TEST_HARDWARE),)
TEST_DIRECTORIES = $(NON_HARDWARE_TEST_DIRS)
else
TEST_DIRECTORIES = $(NON_HARDWARE_TEST_DIRS) $(HARDWARE_TEST_DIRS)
endif
TEST_FILES := $(shell ls $(TARGET_BOARD)/*.t)
endif
TEST_FILES := $(shell ls $(TEST_DIRECTORIES:%=%/*.t))
ifneq ($(JUNIT),)
PERLENV=PERL_TEST_HARNESS_DUMP_TAP=$(PAPARAZZI_SRC)/tests/results
+84
View File
@@ -0,0 +1,84 @@
#!/usr/bin/perl -w
use Test::More tests => 6;
use lib "$ENV{'PAPARAZZI_SRC'}/tests/lib";
use Program;
use Proc::Background;
use Ivy;
$|++;
####################
# Make the airframe
my $make_compile_options = "AIRCRAFT=Microjet clean_ac sim.compile";
my $compile_output = run_program(
"Attempting to build the sim firmware.",
$ENV{'PAPARAZZI_SRC'},
"make $make_compile_options",
0,1);
unlike($compile_output, '/Aircraft \'Microjet\' not found in/', "The compile output does not contain the message \"Aircraft \'Microjet\' not found in\"");
unlike($compile_output, '/\bError\b/i', "The compile output does not contain the word \"Error\"");
# Start the server process
my $server_command = "$ENV{'PAPARAZZI_HOME'}/sw/ground_segment/tmtc/server";
my @server_options = qw(-n);
my $server = Proc::Background->new($server_command, @server_options);
sleep 2; # The service should die in this time if there's an error
ok($server->alive(), "The server process started successfully");
# Start the sim process
my $link_command = "$ENV{'PAPARAZZI_HOME'}/sw/simulator/launchsitl";
my @link_options = qw(-a -boot -norc);
sleep 2; # The service should die in this time if there's an error
my $link = Proc::Background->new($link_command, @link_options);
ok($link->alive(), "The launchsitl process started successfully");
# Open the Ivy bus and read from it...
# TODO: learn how to read and write to the Ivy bus
# Shutdown the server and link processes
ok($server->die(), "The server process shutdown successfully.");
ok($link->die(), "The launchsitl process shutdown successfully.");
################################################################################
# functions used by this test script.
sub run_program
{
my $message = shift;
my $dir = shift;
my $command = shift;
my $verbose = shift;
my $dont_fail_on_error = shift;
warn "$message\n" if $verbose;
if (defined $dir)
{
$command = "cd $dir;" . $command;
}
my $prog = new Program("bash");
my $fh = $prog->open("-c \"$command\"");
warn "Running command: \"". $prog->last_command() ."\"\n" if $verbose;
$fh->autoflush(1);
my @output;
while (<$fh>)
{
warn $_ if $verbose;
chomp $_;
push @output, $_;
}
$fh->close;
my $exit_status = $?/256;
unless ($exit_status == 0)
{
if ($dont_fail_on_error)
{
warn "Error: The command \"". $prog->last_command() ."\" failed to complete successfully. Exit status: $exit_status\n" if $verbose;
}
else
{
die "Error: The command \"". $prog->last_command() ."\" failed to complete successfully. Exit status: $exit_status\n";
}
}
return wantarray ? @output : join "\n", @output;
}