summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorJean-Philippe SAVE2011-12-06 16:48:12 +0100
committerCyril Jourdan2011-12-20 15:52:39 +0100
commitb351169d8e07d205889f5c767f4dd613435b4b63 (patch)
tree08d46d1d4c8f2ec302f998c396662b4e08525e45 /common
parent213e790acdf1e8ec4e4cad7fb74cdb07d083e8cf (diff)
common/tests: move cesar automatic tests into a common directory, refs #2772
Diffstat (limited to 'common')
-rw-r--r--common/tests/Makefile31
-rwxr-xr-xcommon/tests/get-cov.pl50
-rwxr-xr-xcommon/tests/run-test.pl235
-rw-r--r--common/tests/tests491
4 files changed, 807 insertions, 0 deletions
diff --git a/common/tests/Makefile b/common/tests/Makefile
new file mode 100644
index 0000000000..2295421607
--- /dev/null
+++ b/common/tests/Makefile
@@ -0,0 +1,31 @@
+BASE = ../..
+RUN_TEST = run-test.pl
+GET_COV = get-cov.pl
+COVERAGE_OUTPUT = coverage
+COVERAGE_TITLE = Cesar
+
+all: tests.all.brief tests.all.result
+
+.PHONY: tests.all
+
+tests.all: tests $(RUN_TEST)
+ -perl $(RUN_TEST) $(BASE) < $< > $@ 2>&1
+
+clean: tests.clean
+ rm -f tests.all.brief tests.all tests.clean
+
+.PHONY: tests.clean
+
+tests.clean: tests $(RUN_TEST)
+ perl $(RUN_TEST) -I clean $(BASE) < $< > $@ 2>&1
+
+%.brief: %
+ grep '^==' < $< > $@
+
+%.result: %.brief
+ grep '^===' < $<
+
+.PHONY: cov
+
+cov: tests $(GET_COV)
+ genhtml -q -t $(COVERAGE_TITLE) -o $(COVERAGE_OUTPUT) -s $$(perl $(GET_COV) $(BASE) < $<)
diff --git a/common/tests/get-cov.pl b/common/tests/get-cov.pl
new file mode 100755
index 0000000000..273db8509c
--- /dev/null
+++ b/common/tests/get-cov.pl
@@ -0,0 +1,50 @@
+#!/usr/bin/perl
+#
+# Get the list of coverage trace files.
+#
+use strict;
+use warnings;
+
+my $base = shift @ARGV;
+my $dir;
+my $fail = 0;
+
+# Return truth if the given info file contains at least one trace
+# information.
+sub not_empty
+{
+ my $f = shift;
+ open FILE, "<$f" or die;
+ while (<FILE>)
+ {
+ if (/^SF:/)
+ {
+ close FILE;
+ return 1;
+ }
+ }
+ close FILE;
+ return 0;
+}
+
+# Read tests file.
+while (<STDIN>)
+{
+ chomp;
+ # Drop comments.
+ next if /^\s*(?:#.*)?$/;
+ if (/^(.*):(:)?$/)
+ {
+ # Directory line.
+ $dir = $1;
+ -d "$base/$dir"
+ or die "cannot change directory";
+ }
+ elsif (/^cov.*? (.*?): .*$/)
+ {
+ # Coverage test line.
+ my $f = "$base/$dir/obj/$1.info";
+ -f $f && not_empty ($f)
+ and print "$f\n";
+ }
+}
diff --git a/common/tests/run-test.pl b/common/tests/run-test.pl
new file mode 100755
index 0000000000..04c1bfed62
--- /dev/null
+++ b/common/tests/run-test.pl
@@ -0,0 +1,235 @@
+#!/usr/bin/perl
+#
+# Run all defined tests.
+#
+use strict;
+use warnings;
+use Cwd;
+use Getopt::Long qw(:config no_ignore_case bundling);
+use Pod::Usage;
+
+# Option parsing.
+my $help;
+my $timeout = 5 * 60;
+my @include;
+my @exclude;
+my @include_dir;
+GetOptions (
+ 'help|h' => \$help,
+ 'timeout|t=i' => \$timeout,
+ 'include|I=s' => \@include,
+ 'exclude|X=s' => \@exclude,
+ 'directory|d=s' => \@include_dir,
+) or pod2usage (2);
+pod2usage (1) if $help;
+
+@ARGV == 1 or pod2usage (2);
+
+my $base = getcwd . '/' . shift @ARGV;
+
+my %include;
+@include{@include} = ();
+my %exclude;
+@exclude{@exclude} = ();
+
+# Initialise signal number to name table.
+use Config;
+my @signame;
+my %signum;;
+my $i = 0;
+defined $Config{sig_name} || die "No sigs?";
+foreach (split (' ', $Config{sig_name}))
+{
+ $signame[$i] = $_;
+ $signum{$_} = $i;
+ $i++;
+}
+
+# Test macros.
+my %macros = (
+ 'cov' => \&cov_macro,
+ 'cov-target' => \&cov_target_macro,
+);
+my $lcov;
+
+# Read tests file.
+my $dir;
+my $fail = 0;
+while (<STDIN>)
+{
+ chomp;
+ # Drop comments.
+ next if /^\s*(?:#.*)?$/;
+ # This table will enable an unget system to fake input lines.
+ my @ungeted;
+ push @ungeted, $_;
+ while (@ungeted)
+ {
+ $_ = shift @ungeted;
+ if (/^(.*):(:)?$/)
+ {
+ # Directory line.
+ $dir = $1;
+ chdir "$base/$dir"
+ or die "cannot change directory";
+ # Push automatic clean test.
+ push @ungeted, '-clean: make -s clean' unless $2;
+ }
+ else
+ {
+ # Test line.
+ defined $dir
+ or die "bad format";
+ # Read '-' and '!' flags.
+ my ($dontcare, $expected) = (0, '');
+ $dontcare = 1 if s/^-//;
+ $expected = ' (expected)' if s/^!//;
+ # Decode name and command.
+ my ($name, $cmd);
+ /^(.*?): (.*)$/
+ and ($name, $cmd) = ($1, $2)
+ or ($name, $cmd) = ($_, $_);
+ # Decode macros.
+ $name =~ /^(.*?) (.*)$/ && exists $macros{$1}
+ and ($name, $cmd) = $macros{$1} ($1, $2, $cmd);
+ # Skip test?
+ next if @include_dir && !grep { $dir =~ /^$_/ } @include_dir;
+ next if %include && !exists $include{$name};
+ next if exists $exclude{$name};
+ # Start test.
+ my $t = "=> $dir - $name";
+ print "\n$t\n";
+ my $status = timed_system ($cmd);
+ # Check result.
+ if ($dontcare)
+ {
+ print "=$t: DONE\n";
+ }
+ else
+ {
+ if ($status != 0)
+ {
+ $fail++ unless $expected;
+ if ($status == -1 || $status == 128 << 8) {
+ print "=$t: FAIL$expected command not found\n";
+ } elsif ($status & 127) {
+ printf "=$t: FAIL$expected killed with signal %s\n",
+ $signame[$status & 127];
+ die "interrupted" if ($signame[$status & 127] eq 'INT');
+ } else {
+ printf "=$t: FAIL$expected exited with value %d\n",
+ ($status >> 8);
+ }
+ }
+ else
+ {
+ print "=$t: PASS\n";
+ }
+ }
+ }
+ }
+}
+# Print summary.
+if ($fail)
+{
+ print "\n===> FAIL $fail unexpected tests\n";
+ exit 1;
+}
+else
+{
+ print "\n===> PASS all tests\n";
+ exit 0;
+}
+
+sub cov_macro
+{
+ my ($name, $arg, $cmd, $objdir, $gcov) = @_;
+ if (not defined $lcov)
+ {
+ system ('lcov --version > /dev/null');
+ $lcov = $? == 0 ? 1 : 0;
+ }
+ if ($lcov)
+ {
+ $objdir = 'obj' unless defined $objdir;
+ $gcov = '' unless defined $gcov;
+ return ($name,
+ "rm -f obj/$arg.info && "
+ . "lcov -q -d $objdir -b . -z $gcov && "
+ . "$cmd && "
+ . "lcov -q -d $objdir -b . -c -t $arg -o obj/$arg.info $gcov");
+ }
+ else
+ {
+ return ('run', $cmd);
+ }
+}
+
+sub cov_target_macro
+{
+ my ($name, $arg, $cmd) = @_;
+ if (exists $ENV{CROSS_COMPILE_})
+ {
+ return cov_macro ($name, $arg, $cmd, '.', " -g $ENV{CROSS_COMPILE_}gcov");
+ }
+ else
+ {
+ return ('run', $cmd);
+ }
+}
+
+sub timed_system
+{
+ my $cmd = shift;
+ my $pid = fork;
+ defined $pid or die "fork: $!,";
+ if ($pid == 0)
+ {
+ # Son.
+ exec $cmd;
+ exit 128;
+ }
+ else
+ {
+ # Father.
+ eval {
+ local $SIG{ALRM} = sub { die "alarm\n" };
+ alarm $timeout;
+ do { $_ = wait } until $_ == $pid;
+ alarm 0;
+ };
+ if ($@)
+ {
+ die unless $@ eq "alarm\n";
+ kill INT => $pid;
+ sleep 3;
+ kill KILL => $pid;
+ print "Timed out!\n";
+ return $signum{ALRM};
+ }
+ else
+ {
+ return $?;
+ }
+ }
+}
+
+__END__
+
+=head1 NAME
+
+run-test.pl - Read a tests file and run all configured tests
+
+=head1 SYNOPSIS
+
+run-test.pl [options] base
+
+ Options:
+ -h, --help brief help message
+ -I, --include=NAME only include named tests, can be issued multiple times
+ -X, --exclude=NAME do not include named tests
+ -d, --directory=DIR only include tests below given directories
+ -t, --timeout=SEC timeout for each test (seconds)
+
+=cut
+
diff --git a/common/tests/tests b/common/tests/tests
new file mode 100644
index 0000000000..1513876e4e
--- /dev/null
+++ b/common/tests/tests
@@ -0,0 +1,491 @@
+# tests file.
+#
+# Define tests using the following format:
+#
+# path/to/test/directory:[:]
+# [!|-][test name: ]command
+# [!|-][test name: ]command...
+#
+# The commands are run in the given directory. If the second colon is not
+# present, first command is 'make -s clean'. Commands starting with a bang
+# (!) are expected to fail. Result of commands starting with a dash (-) are
+# ignored.
+#
+# If test name is 'cov <test_name>', lcov is run on this test if found,
+# producing a file obj/<test_name>.info.
+
+#common/make/test::
+#run: ./test_make.sh
+
+cesar/hal/arch/test/atomic:
+make: make COV=y
+cov test_atomic: ./obj/test_atomic
+
+cesar/hal/boot_params/test/test_boot_params:
+make
+test_boot_params: ./obj/test_boot_params
+
+cesar/hal/boot_params/test/test_bin_eof:
+make
+test_bin_eof: python ./test_bin_eof.py
+
+cesar/hal/mem/test:
+make
+test_mem: ./obj/test_mem
+
+cesar/hal/phy/maximus/test:
+make: make COV=y
+cov test_phy_maximus: ./obj/test_phy_maximus
+
+cesar/hal/phy/maximus/dur/test:
+make: make COV=y
+cov test_dur: ./obj/test_dur
+
+cesar/hal/hle/maximus/test:
+make: make COV=y
+cov test_maximus_hle: ./obj/test_maximus_hle
+
+cesar/hal/hle/test:
+make: make COV=y
+cov hal_hle_hal_ipmbox: ./obj/hal_hle_hal_ipmbox
+cov hal_hle_ipmbox: ./obj/hal_hle_ipmbox
+
+cesar/hal/leon/maximus/test:
+make: make COV=y
+cov test_maximus_timer: ./obj/test_maximus_timer
+
+cesar/lib/test/bitstream:
+make: make HOST_COV=y
+cov test_bitstream: ./obj/test_bitstream
+
+cesar/lib/test/blk:
+make: make COV=y
+cov test_blk: ./obj/test_blk
+
+cesar/lib/test/circular_buffer:
+make: make COV=y
+cov test_circular_buffer: ./obj/test_circular_list
+
+cesar/lib/test/crc:
+make: make COV=y
+cov test_crc: ./obj/test_crc
+
+cesar/lib/test/fixed:
+make: make COV=y
+cov test_fixed: ./obj/test_fixed
+
+cesar/lib/test/heap:
+make: make COV=y
+cov test_heap: ./obj/test_heap
+
+cesar/lib/test/init:
+make: make COV=y
+cov test_init: ./obj/test_init
+
+cesar/lib/test/list:
+make: make COV=y
+cov test_list: ./obj/test_list
+
+cesar/lib/test/mac_lookup_table:
+make: make COV=y
+cov test_mac_lookup_table: ./obj/test_mac_lookup_table
+
+cesar/lib/test/mbox:
+make: make COV=y
+cov test_mbox_host: ./obj/mbox_host
+cov-target test_mbox_ecos: ./obj/mbox.elf
+
+cesar/lib/test/perf:
+make: make
+
+cesar/lib/test/read_word:
+make: make COV=y
+cov test_read_word: ./obj/test_read_word
+
+cesar/lib/test/restrack:
+make: make COV=y
+cov test_restrack: ./obj/test_restrack
+
+cesar/lib/test/rnd:
+make: make COV=y
+cov test_rnd: ./obj/test_rnd
+
+cesar/lib/test/set:
+make: make COV=y
+cov test_set: ./obj/test_set
+
+cesar/lib/test/slab:
+make: make COV=y
+cov test_slab: ./obj/test_slab
+
+cesar/lib/test/slist:
+make
+run: ./obj/test_slist
+
+cesar/lib/test/stats:
+make: make COV=y
+cov test_stats: ./obj/test_stats
+
+cesar/lib/test/test:
+make
+!run: ./obj/test_test
+
+cesar/lib/test/trace:
+make: make HOST_COV=y
+cov test_trace: ./obj/test_trace
+
+cesar/lib/test/try:
+make: make COV=y
+cov test_try: ./obj/test_try
+
+cesar/lib/test/utils:
+make: make COV=y
+cov test_utils: ./obj/test_utils
+
+cesar/lib/scenario/test:
+make: make COV=y
+cov test_scenario: ./obj/test_scenario
+
+cesar/lib/test/seq_check:
+make: make COV=y
+cov test_seq_check: ./obj/test_seq_check
+
+cesar/maximus/stationtest:
+make
+
+cesar/maximus/prototest/fcall:
+make
+
+cesar/maximus/python:
+make: make COV=y
+python test/test_channel.py -e ../stationtest/obj/test_station.elf -d false -t 2500000000
+python test/test_cli.py
+python test/test_ethernet.py -e ../stationtest/obj/test_ether.elf -d false -t 2500000000
+python test/test_fsm.py
+python test/test_interface.py -e ../stationtest/obj/stationtest.elf -d false -t 2500000000
+python test/test_lib_cesar.py -e ../stationtest/obj/test_lib_cesar.elf -d false -t 2500000000
+python test/test_lib_proto.py -u -e ../prototest/fcall/obj/test_fcall.elf -t 2500000000
+python test/test_macframe.py -e ../stationtest/obj/test_send.elf -d false -t 2500000000
+python test/test_mme.py -e ../stationtest/obj/stationtest.elf -d false -t 2500000000
+python test/test_result.py
+python test/test_simu.py -e ../stationtest/obj/stationtest.elf -d false -t 2500000000
+python test/test_station.py -e ../stationtest/obj/test_station.elf -d false -t 2500000000
+python test/test_utils.py
+python py/script_example.py -e ../stationtest/obj/stationtest.elf -d false -t 2500000000
+python py/test_cb.py -e ../stationtest/obj/test_cb.elf -d false -t 2500000000
+python py/test_send_mpdu.py -e ../stationtest/obj/test_send.elf -d false -t 2500000000
+python py/test_send_noise.py -e ../stationtest/obj/test_send.elf -d false -t 2500000000
+python py/test_tx_rx.py -e ../stationtest/obj/test_tx_rx.elf -d false -t 2500000000
+python py/test_ether.py -e ../stationtest/obj/test_ether.elf -d false -t 2500000000
+python py/test_false_alarm.py -e ../stationtest/obj/test_false_alarm.elf -d false -t 2500000000
+
+cesar/maximus/python/tools/csi/test:
+python avln.py
+python core.py
+python station.py
+
+cesar/hal/phy/test/phy:
+make
+cd py/test_phy && perl regs2py.pl ../../../../inc
+run: python py/all.py -d false -t 2500000000
+
+cesar/hal/phy/test/bridgedma:
+make
+run: ./obj/host/bridgedma.elf
+
+cesar/mac/ca/test/ca:
+make: make COV=y
+cov test_ca: ./obj/test_ca
+
+cesar/mac/common/test/mfs:
+make
+run: ./obj/test_mfs
+
+cesar/mac/common/test/pb:
+make
+run: ./obj/test_pb
+
+cesar/mac/common/test/store:
+make: make COV=y
+cov test_store: ./obj/test_store
+
+cesar/mac/common/test/tonemap:
+make: make COV=y
+cov test_tonemap: ./obj/test_tonemap
+
+cesar/mac/common/test/interval:
+make: make COV=y
+cov test_interval: ./obj/test_interval
+
+cesar/mac/design/test/mfs_tx:
+make
+
+cesar/mac/design/test/mfs_tx2:
+make
+
+cesar/mac/design/test/sacki:
+make
+run: ./obj/test_sacki
+
+cesar/mac/pbproc/test/fc:
+make: make COV=y
+cov test_fc: ./obj/test_fc
+
+cesar/mac/pbproc/test/fsm:
+make: make COV=y
+cov test_fsm: ./obj/test_fsm
+
+cesar/mac/pbproc/test/mfs:
+make: make COV=y
+cov test_mfs: ./obj/test_mfs
+
+cesar/mac/pbproc/test/pbproc:
+make: make COV=y
+cov test_pbproc: ./obj/test_pbproc
+
+cesar/mac/pbproc/test/int:
+make
+run: python py/host_test_pbproc.py --maximus
+run: python py/test_coll.py --maximus
+
+cesar/mac/pbproc/test/sacki:
+make: make COV=y
+cov test_sacki: ./obj/test_sacki
+
+cesar/mac/sar/test/unit_test/ecos:
+make: make
+sar: ./obj/sar.elf
+sar_pbproc_mfs_orverride: ./obj/sar_pbproc_override.elf
+
+cesar/mac/sar/test/unit_test/host:
+make: make COV=y
+cov lib_sar_mf: ./obj/lib_sar_mf
+
+cesar/mac/sar/test/functional:
+make host
+sar_rx_perf: obj/host/sar_rx_perf.elf
+sar_rx_perf_huge_mpdu: obj/host/sar_rx_perf_huge_mpdu.elf
+sar_tx_perf: obj/host/sar_tx_perf.elf
+sar_rx_perf_huge_mpdu_1518: obj/host/sar_rx_perf_huge_mpdu_1518.elf
+sar_rx_tx: obj/host/sar_rx_tx.elf
+sar_tx_rx: obj/host/sar_tx_rx.elf
+
+cesar/cl/test/utest:
+make: make COV=y
+cov cl: ./obj/cl
+
+cesar/cl/test/functional:
+make host
+cl: ./obj/host/cl.elf
+
+cesar/cl/test/bridge_table:
+make: make COV=y
+cov test_bridge_table: ./obj/test_bridge_table
+
+cesar/cl/test/data_rate:
+make: make COV=y
+cov data_rate: ./obj/data_rate
+
+cesar/ce/tx/test:
+make: make COV=y
+cov ce_tx_test_mme: ./obj/test_mme
+cov ce_tx_test_expiration: ./obj/test_expiration
+cov ce_tx_test_tm: ./obj/test_tm
+
+cesar/ce/rx/test:
+make: make COV=y
+cov-target ce_rx_test_rx: ./obj/test_rx.elf
+
+cesar/ce/rx/bitloading/test:
+make: make COV=y host fsm
+cov ce_rx_bl_host: ./obj/host/test_ce_host
+cov ce_rx_bl_fsm_host: ./obj/host/test_ce_fsm
+cov ce_rx_bl_intervals_host: ./obj/host/test_ce_intervals
+
+cesar/ce/rx/cp/test:
+make: make
+ce_rx_cp_test_me: ./obj/test_mme.elf
+ce_rx_cp_test_mbox: ./obj/test_mbox
+
+cesar/maximus/unittest:
+make: make COV=y
+obj/unittest -e ../stationtest/obj/stationtest.elf
+
+cesar/maximus/usertest:
+make: make COV=y
+obj/usertest -e ../stationtest/obj/stationtest.elf -d false -t 2500000000
+
+cesar/test_general/maximus/integration/cl-sar-pbproc:
+make
+python test1.py -d false -t 2500000000
+
+cesar/test_general/maximus/integration/sar-pbproc:
+make
+python test1.py -d false -t 2500000000
+python test2.py -d false -t 2500000000
+
+cesar/test_general/maximus/integration/hle-cl-sar-pbproc:
+make
+python test1.py -d false -t 2500000000
+
+cesar/test_general/maximus/integration/ipmbox-hle-cl-sar-pbproc:
+make
+python test1.py -d false -t 2500000000
+python test2.py -d false -t 2500000000
+
+cesar/test_general/maximus/integration/interface-dp:
+make
+python test01.py -d false -t 2500000000
+
+cesar/interface/sniffer/test:
+make
+sniffer: ./obj/test-sniffer
+
+cesar/interface/test:
+make: make synth
+interface: ./obj/synth/test-interface.elf
+
+cesar/hle/test/:
+make: make COV=y
+hle_recv_from_arm: ./obj/host/hle_recv_from_arm
+hle_send_to_arm: ./obj/host/hle_send_to_arm
+interface_send: ./obj/host/interface_send
+
+cesar/host/test:
+make: make COV=y
+./obj/test_host
+
+cesar/host/sci/cesar/test:
+make: make COV=y
+./obj/test_sci_cesar
+
+cesar/interface/fcall/test:
+make: make COV=y
+./obj/test_interface_fcall
+
+cesar/cp/test/mme:
+make: make COV=y host.all
+cov test_mme: ./obj/test_mme
+
+cesar/cp/fsm/test/utest:
+make: make COV=y
+cov test_fsm: ./obj/test_fsm
+
+cesar/cp/sta/action/test/utest:
+make: make COV=y
+cov test_sta_action: ./obj/test_sta_action
+
+cesar/cp/sta/mgr/test:
+make
+test_sta_mgr: obj/test_sta_mgr
+
+cesar/cp/cco/action/test:
+make
+action: ./obj/action.elf
+garbage: ./obj/garbage.elf
+status: ./obj/status.elf
+keys: ./obj/keys.elf
+
+cesar/cp/cco/action/test/utest:
+make
+action: ./obj/test_cco_action
+
+cesar/cp/beacon/test:
+make
+beacon: ./obj/beacon.elf
+discover: ./obj/discover_process.elf
+
+cesar/cp/msg/test:
+make: make COV=y
+read-header: ./obj/test-msg-read-header
+cc-msg: ./obj/test-msg-cc
+cm-msg: ./obj/test-msg-cm
+frag_mme: ./obj/test_frag_mme
+cm-drv: ./obj/test_drv_msg
+discover_list: ./obj/test_cc_discover_list
+relay: ./obj/relay
+vs-msg: ./obj/test_vs_msg
+vs-msg: ./obj/test_vs_msg
+test_allowed_mme: ./obj/test_allowed_mme
+
+cesar/cp/secu/test:
+make: make -f host-Makefile COV=y
+sha256: ./obj/host/test_sha2
+aes128: ./obj/host/test_aes
+prun: ./obj/host/test_prun
+nmk: ./obj/host/test_nmk
+hash: ./obj/host/test_hash
+
+cesar/cp/cl_interf/test:
+make
+cl_interf: ./obj/test-cl-interf
+
+cesar/cp/sta/core/test:
+make simu
+core: ./obj/simu/core.elf
+core_event: ./obj/simu/core_events.elf
+core_thread: ./obj/simu/core_thread.elf
+core_timer: ./obj/simu/core_timer.elf
+
+cesar/test_general/station/scenario:
+make
+sc01_assoc_auth: python py/sc01_assoc_auth.py -d false -t 25000000000
+sc02_stas_communication: python py/sc02_stas_communication.py -d false -t 25000000000
+sc03_two_avln_coexisting: python py/sc03_two_avln_coexisting.py -d false -t 25000000000
+sc04_cc_whoru: python py/sc04_cc_whoru.py -d false -t 25000000000
+sc05_cc_leave: python py/sc05_cc_leave.py -d false -t 25000000000
+sc06_discover_procedure: python py/sc06_discover_procedure.py -d false -t 25000000000
+sc07_bridge: python py/sc07_bridge.py -d false -t 25000000000
+sc08_bentry_change: python py/sc08_bentry_change.py -d false -t 25000000000
+sc09_simple_connect: python py/sc09_simple_connect.py -d false -t 25000000000
+sc10_short_messages: python py/sc10_short_messages.py -d false -t 25000000000
+sc11_cm_nw_info: python py/sc11_cm_nw_info.py -d false -t 25000000000
+sc12_change_nmk: python py/sc12_change_nmk.py -d false -t 25000000000
+sc13_data_rate: python py/sc13_data_rate.py -d false -t 25000000000
+sc14_igmp: python py/sc14_igmp.py -d false -t 25000000000
+
+cesar/test_general/station/maximus:
+make
+sc01_long_simu: python py/sc01_long_simu.py -d false -t 25000000000
+sc02_long_simu_data: python py/sc02_long_simu_data.py -d false -t 25000000000
+
+cesar/test_general/station/tonemap:
+make -f host-Makefile
+sc01_bl_initial: python py/sc01_bl_initial.py --maximus
+sc02_vs_get_tonemap: python py/sc02_vs_get_tonemap.py --maximus
+
+cesar/cp/cco/bw/test:
+make
+bw: ./obj/bw
+
+cesar/cp/cco/region/test:
+make
+region: ./obj/region
+
+cesar/hal/phy/spoc/test:
+make host.all
+test_spoc: ./obj/test_spoc
+
+cesar/test_general/station/compliance:
+make
+6.2.1-dut_as_a_cco: python py/sc01_dut_as_a_cco.py --maximus
+
+cesar/bsu/beacon/test/utest:
+make
+beacon: ./obj/beacon
+
+cesar/bsu/test/utest:
+make
+test_bsu: ./obj/test_bsu
+
+cesar/bsu/ntb/test/utest:
+make
+bsu/ntb: ./obj/ntb
+
+cesar/bsu/aclf/test/utest:
+make
+bsu/aclf: ./obj/aclf
+
+cesar/projects/plc:
+make
+make traces: make PROJECT_CONFIG=Config.traces