summaryrefslogtreecommitdiffstats
path: root/src/usr/cxxtest
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/cxxtest')
-rwxr-xr-xsrc/usr/cxxtest/autosample366
-rwxr-xr-xsrc/usr/cxxtest/cxxtest-start.sh35
-rw-r--r--src/usr/cxxtest/cxxtestexec.C10
-rwxr-xr-xsrc/usr/cxxtest/cxxtestgen.pl4
4 files changed, 12 insertions, 403 deletions
diff --git a/src/usr/cxxtest/autosample b/src/usr/cxxtest/autosample
deleted file mode 100755
index d5f19c63b..000000000
--- a/src/usr/cxxtest/autosample
+++ /dev/null
@@ -1,366 +0,0 @@
-#!/bin/bash
-################################################################################
-# Simics automation using autosim
-## 2011-05-23 mww modified to run hostboot in simics
-## 2011-06-02 mww check in first working version.
-## Profuse thanks to Patrick Williams for getting this going
-## on the Gerrit server!!
-################################################################################
-function waitkb()
-{
-
- ## wait for kbhit to continue
- ## echo "Hit any key to continue"
- ## read kb
- echo "."
-}
-
-function usage()
-{
-
- echo "usage:"
- echo "$0 [--quiet] backing_tree_dir sandbox_name path_to_hbicore_test_img "
-
-}
-
-
-function stopsim()
-{
- # Stop simics
- echo "Stopping simics"
- autosim $NOWIN $VERBOSE --stopsim
- if [ $? -ne 0 ] ; then
- echo "WARNING: Unable to stop simics cleanly"
- fi
-}
-
-
-function stopserver()
-{
- # Stop simics server
- echo "Stopping simics server"
- autosim $NOWIN $VERBOSE --stopserver
- if [ $? -ne 0 ] ; then
- echo "WARNING: Unable to stop simics server cleanly"
- fi
-}
-
-
-
-## mww verbose is the default.
-VERBOSE=" --verbose"
-if [ "$1" = "--quiet" ] ; then
- VERBOSE=""
- shift
-fi
-
-##
-## set up
-##
-DRIVER="$1" ## backing tree
-TEST_SANDBOX="$2" ## test sandbox
-HBICORE_TEST="$3" ## path to hbicore_test.img
-
-export SHELL="/bin/bash" ## Needed to fool workon to launch a bash shell, which
- ## autosim expects.
-NOWIN="--nowin" ## remote execution does not have a display...
-
-MACHINE="SALERNO"
-HBOT_SIMICS_SETUP="/gsa/ausgsa/home/a/n/andrewg/web/public/hostboot/simics/hbot_simics_setup.pl"
-
-## gerrit creates a new workspace for every compile.
-## cxxtest-start.sh will verify this and then export WORKSPACE_DIR for us.
-SBXDIR=$WORKSPACE_DIR
-
-## autosim, mksb, workon, etc should look in $SANDBOXRC for the location of the sandbox.
-## this is more effective than using -rc option (autosim has no option for this anyway)
-LOCAL_SANDBOXRC="$WORKSPACE_DIR/my.sandboxrc"
-
-
-if [ "$DRIVER" = "" ] ; then
- echo "ERROR: you must specify a driver (backing tree) to run the tests with"
- usage
- exit 1
-fi
-
-if [ "$TEST_SANDBOX" = "" ] ; then
- echo "ERROR: must specify a TEST_SANDBOX="
- usage
- exit 1
-fi
-
-if [ ! -f "$HBICORE_TEST" ] ; then
- echo "ERROR: you must specify a valid hbicore_test.bin file."
- usage
- exit 1
-fi
-
-## extract the pathname of hbicore_test.* from $HBICORE_TEST
-## parse out the dir and file names for hbicore_test
-HBICORE_TEST_DIR=${HBICORE_TEST%/*}
-HBICORE_TEST_FILE=${HBICORE_TEST##*/}
-
-
-
-## let's get set up
-cd $WORKSPACE_DIR
-
-echo "$0"
-echo "VERBOSE = $VERBOSE"
-echo "NOWIN = $NOWIN"
-echo "BACKING_TREE = $DRIVER"
-echo "TEST_SANDBOX = $TEST_SANDBOX"
-echo "HBICORE_TEST = $HBICORE_TEST"
-echo "HBICORE_TEST_DIR = $HBICORE_TEST_DIR"
-echo "LOCAL_SANDBOXRC = $LOCAL_SANDBOXRC"
-echo "SBXDIR = $SBXDIR"
-echo "current directory is " `pwd`
-# echo "env vars are " `env`
-
-
-
-waitkb
-
-
-timestamp=`date +'%H:%M:%S'`
-echo "$timestamp Starting autosample test..."
-
-
-# Set up the test sandbox backed to the specified build
-## Assumption here is that we will always run inside the workspace created by gerrit,
-## so we always create a new sandbox
-##
-
-echo "Setting up sandbox environment..."
-
-
-## mksb fills the log with "please type backing tree file" if it can't find
-## the -back file. We wish to avoid this.
-if [ ! -d "$DRIVER" ] ; then
- echo "cannot access the backing tree $DRIVER , aborting"
- exit 1
-fi
-
-
-## set $SANDBOXRC to the local one, this should cause this to make and run in a new sandbox
-export SANDBOXRC=$LOCAL_SANDBOXRC
-
-
-## at the base workspace dir.
-if [ ! -d "$SBXDIR/$TEST_SANDBOX" ] ; then
- echo "run mksb to create the sandbox "
- mksb -rc $LOCAL_SANDBOXRC -dir $SBXDIR -back $DRIVER -sb $TEST_SANDBOX -m ppc
- if [ $? -ne 0 ] ; then
- echo "ERROR: mksb failed: $?"
- exit 1
- fi
-else
- echo "$SBXDIR/$TEST_SANDBOX already exists, " `ls -la`
- `usrsbinfo -s`
- chkdrv=`usrsbinfo -s | grep " $TEST_SANDBOX "| awk '{ print $2 }'`
- if [ "$chkdrv" != "$DRIVER" ] ; then
- resb $DRIVER -sb $TEST_SANDBOX
- fi
-fi
-
-waitkb
-
-# Run set up in current shell
-echo "run autosimsetup.."
-. autosimsetup
-
-waitkb
-
-# Start the simics server
-echo "Starting simics server in sandbox $TEST_SANDBOX on machine $MACHINE"
-autosim $NOWIN $VERBOSE --startserver --wp --sandbox $TEST_SANDBOX --machine $MACHINE
-if [ $? -ne 0 ] ; then
- echo "ERROR: Unable to start simics server $?"
- exit 1
-fi
-
-
-waitkb
-
-## under normal circumstances $sb would be set by start_simics
-export sb=$SBXDIR/$TEST_SANDBOX/src
-echo $sb
-
-echo "** Set up simics directories **"
-echo "start_simics -no_start -machine $MACHINE" > $sb/my_simics_env_setup
-chmod 775 $sb/my_simics_env_setup
-workon -sb $TEST_SANDBOX -mppc -c ./my_simics_env_setup
-
-echo "** Run workaround from Ched **"
-/afs/rchland/usr2/ched/public/hostboot/fix_ph110510.sh
-
-echo " Create required config directory and copy in required file (make L3 8MB for now) **"
-mkdir -p $sb/simu/configs/ && cp /gsa/ausgsa/home/a/n/andrewg/web/public/hostboot/simics/P8_SALERNO.config $sb/simu/configs/
-
-echo "** Copy in the P8 scomdef **"
-mkdir -p $sb/src/engd/scomdef && cp /gsa/ausgsa/home/a/n/andrewg/web/public/hostboot/simics/p8_910400.scomdef $sb/src/engd/scomdef/
-
-echo "** Create img directory for hbicore.bin **"
-mkdir -p $sb/../img
-
-
-waitkb
-
-
-## According to the new directions, the hbicore_test.bin file now needs to be
-## copied to $sb/../img/hbicore.bin . This works out to $TEST_SANDBOX/img/hbicore.bin
-## Note the name change; thus we are always pretty safe in always doing this.
-##
-echo "copy $HBICORE_TEST to $WORKSPACE_DIR/$TEST_SANDBOX/img/hbicore.bin"
-cp $HBICORE_TEST $WORKSPACE_DIR/$TEST_SANDBOX/img/hbicore.bin
-if [ $? -ne 0 ] ; then
- echo "ERROR: Copy of $HBICORE_TEST to $TEST_SANDBOX/../img failed: $?"
- exit 1
-fi
-
-## we also need the hbicore_test.syms file. Assume that it is the same dir as the .bin file.
-## NOTE: it may already be there.
-##
-echo "copy hbicore_test.syms file to $WORKSPACE_DIR/img/hbicore_test.syms"
-if [ ! -f "$WORKSPACE_DIR/img/hbicore_test.syms" ]; then
- cp $HBICORE_TEST_DIR/hbicore_test.syms $WORKSPACE_DIR/img/hbicore_test.syms
- if [ $? -ne 0 ] ; then
- echo "ERROR: Copy of hbicore_test.syms to $WORKSPACE_DIR/img/ failed: $?"
- exit 1
- fi
-fi
-
-
-
-waitkb
-
-
-# Start simics and wait for it to reach standby
-echo "Starting simics"
-#autosim $VERBOSE --startsim --chkpt standby <<< chkpt not working yet
-autosim $NOWIN $VERBOSE --startsim
-if [ $? -ne 0 ] ; then
- echo "ERROR: Unable to start simics $?"
- stopserver ## kill the server again.
- exit 1
-fi
-
-
-waitkb
-
-
-## $$TODO Need to wait here for hostboot to finish
-## for now just sleep for 20 seconds
-sleep 20
-
-
-waitkb
-
-## grep for totaltests, etc. These will appear in the hbicore_test.syms file and
-## look like the following:
-## V,000292b8,00000000,00000008,CxxTest::totaltests
-## V,000292c0,00000000,00000008,CxxTest::tracecalls
-## V,000292c8,00000000,00000008,CxxTest::warnings
-## V,000292d0,00000000,00000008,CxxTest::failedtests
-
-## V,00017888,00000000,00004000,kernel_printk_buffer
-
-
-## grep for the globals
-echo "find totaltests, etc in $HBICORE_TEST_DIR/hbicore_test.syms"
-printk_buffer_addr=`grep "kernel_printk_buffer" $HBICORE_TEST_DIR/hbicore_test.syms | awk '{split($0,a,","); print a[2]}'`
-printk_buffer_size=`grep "kernel_printk_buffer" $HBICORE_TEST_DIR/hbicore_test.syms | awk '{split($0,a,","); print a[4]}'`
-totaltests_addr=`grep "CxxTest::g_TotalTests" $HBICORE_TEST_DIR/hbicore_test.syms | awk '{split($0,a,","); print a[2]}'`
-failedtests_addr=`grep "CxxTest::g_FailedTests" $HBICORE_TEST_DIR/hbicore_test.syms | awk '{split($0,a,","); print a[2]}'`
-warnings_addr=`grep "CxxTest::g_Warnings" $HBICORE_TEST_DIR/hbicore_test.syms | awk '{split($0,a,","); print a[2]}'`
-tracecalls_addr=`grep "CxxTest::g_TraceCalls" $HBICORE_TEST_DIR/hbicore_test.syms | awk '{split($0,a,","); print a[2]}'`
-
-
-
-## note, don't use $VERBOSE here or you get all sorts of extra junk in the output file.
-echo "====> dump totaltests..."
-autosim $NOWIN --simcmd "phys_mem.x 0x$totaltests_addr 0x08" 1> $WORKSPACE_DIR/totaltests.log 2> /dev/null
-if [ $? -ne 0 ] ; then
- echo "ERROR: Unable to run $?"
- stopsim
- stopserver
- exit 1
-fi
-totaltests=`cat $WORKSPACE_DIR/totaltests.log | awk '{ print $5 }'`
-
-
-echo "====> dump failedtests..."
-autosim $NOWIN --simcmd "phys_mem.x 0x$failedtests_addr 0x08" 1> $WORKSPACE_DIR/failedtests.log 2> /dev/null
-if [ $? -ne 0 ] ; then
- echo "ERROR: Unable to run $?"
- stopsim
- stopserver
- exit 1
-fi
-failedtests=`cat $WORKSPACE_DIR/failedtests.log | awk '{ print $5 }'`
-
-
-echo "====> dump warnings..."
-autosim $NOWIN --simcmd "phys_mem.x 0x$warnings_addr 0x08" 1> $WORKSPACE_DIR/warnings.log 2> /dev/null
-if [ $? -ne 0 ] ; then
- echo "ERROR: Unable to run $?"
- stopsim
- stopserver
- exit 1
-fi
-warnings=`cat $WORKSPACE_DIR/warnings.log | awk '{ print $5 }'`
-
-
-echo "====> dump tracecalls..."
-autosim $NOWIN --simcmd "phys_mem.x 0x$tracecalls_addr 0x08" 1> $WORKSPACE_DIR/tracecalls.log 2> /dev/null
-if [ $? -ne 0 ] ; then
- echo "ERROR: Unable to run $?"
- stopsim
- stopserver
- exit 1
-fi
-tracecalls=`cat $WORKSPACE_DIR/tracecalls.log | awk '{ print $5 }'`
-
-
-
-echo "====> dump printk buffer..."
-autosim $NOWIN --simcmd "memory_image_ln0.save $WORKSPACE_DIR/testprintk.log 0x$printk_buffer_addr 0x$printk_buffer_size" 1> /dev/null 2> /dev/null
-if [ $? -ne 0 ] ; then
-echo "ERROR: Unable to run $?"
- stopsim
- stopserver
-exit 1
-fi
-
-
-## done. Stop the simulation
-stopsim
-
-
-## now stop the server.
-stopserver
-
-
-
-## print out ending.
-timestamp=`date +'%H:%M:%S'`
-
-echo "----------------- Printk Buffer -------------------"
-cat $WORKSPACE_DIR/testprintk.log
-
-echo
-echo "==================================================="
-echo "$timestamp Finished autosample test with no errors."
-echo " total tests: $totaltests"
-echo " failed tests: $failedtests"
-echo " warnings: $warnings"
-echo " trace calls: $tracecalls"
-echo "==================================================="
-echo
-
-
-exit 0
-
-
-
-
diff --git a/src/usr/cxxtest/cxxtest-start.sh b/src/usr/cxxtest/cxxtest-start.sh
deleted file mode 100755
index 50a88fdff..000000000
--- a/src/usr/cxxtest/cxxtest-start.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-#
-# Front end to autosample - script to execute unit tests under simics.
-# 2011-06-02 mww Initial (working) checkin
-#
-
-## does gerrit export env vars for workspace???
-## when gerrit runs it will create a workspace with the built code tree
-## and drop us into it.
-export WORKSPACE_DIR=`pwd`
-export AUTOSAMPLE="/gsa/ausgsa/projects/h/hostboot/test/autosample"
-CXXTEST_REMOTE_SANDBOX="cxxtest_sb"
-
-if [ "$HOSTNAME" == "" ] ; then
- echo "no HOSTNAME??"
- export HOSTNAME=`hostname`
-fi
-
-
-## klog to get access to simics tools
-AFSPASSWD="/gsa/ausgsa/projects/h/hostboot/gerrit-server/afspasswd.sh"
-$AFSPASSWD | klog -cell austin -pipe
-$AFSPASSWD | klog -cell rchland -pipe
-
-## This will create a sandbox inside the Gerrit workspace and run simics UT
-## usage: autosample [--quiet] <backing-tree-dir> <sandbox-name> <hbicore_test.bin-image-from-make>
-## /gsa/ausgsa/projects/h/hostboot/test/autosample /esw/fips740/Builds/b0513a_1121.740 cxxtest_sb $GERRIT_WS_DIR/img/hbicore_test.bin
-
-## run autosample to run simics unit tests
-## NOTE: this assumes that someone has copied hbicore_test.bin and hbicore_test.syms $WORKSPACE_DIR/img directory
-## usage: autosample [--quiet] <backing-tree-dir> <sandbox-name> <hbicore_test.bin-image-from-make>
-$AUTOSAMPLE /esw/fips740/Builds/b0513a_1121.740 $CXXTEST_REMOTE_SANDBOX $WORKSPACE_DIR/img/hbicore_test.bin
-
-echo "Done."
-
diff --git a/src/usr/cxxtest/cxxtestexec.C b/src/usr/cxxtest/cxxtestexec.C
index 274f386ef..b4785cbc5 100644
--- a/src/usr/cxxtest/cxxtestexec.C
+++ b/src/usr/cxxtest/cxxtestexec.C
@@ -3,6 +3,12 @@
#include <string.h>
#include <kernel/console.H>
+namespace CxxTest
+{
+ uint64_t g_ModulesStarted = 0;
+ uint64_t g_ModulesCompleted = 0;
+}
+
/* Iterate through all modules in the VFS named "libtest*" and create children
* tasks to execute them.
*/
@@ -12,6 +18,7 @@ void _start(void*)
VfsSystemModule* vfsItr = &VFS_MODULES[0];
printk( "Executing CxxTestExec module.\n");
+ __sync_add_and_fetch(&CxxTest::g_ModulesStarted, 1);
while(vfsItr->module[0] != '\0')
{
@@ -19,11 +26,14 @@ void _start(void*)
{
if (NULL != vfsItr->start)
{
+ __sync_add_and_fetch(&CxxTest::g_ModulesStarted, 1);
task_exec(vfsItr->module, NULL);
}
}
vfsItr++;
}
+ __sync_add_and_fetch(&CxxTest::g_ModulesCompleted, 1);
+
task_end();
}
diff --git a/src/usr/cxxtest/cxxtestgen.pl b/src/usr/cxxtest/cxxtestgen.pl
index da7c13356..8fa5ab5d7 100755
--- a/src/usr/cxxtest/cxxtestgen.pl
+++ b/src/usr/cxxtest/cxxtestgen.pl
@@ -676,7 +676,7 @@ sub writeHostBootSuites() {
print "\n";
print "\tCxxTest::reportTotalTests( \"", suiteName(), "\", $testcount );\n";
-
+
$suitecount++; # bump to the next suite
}
}
@@ -700,7 +700,7 @@ sub write_start() {
writeHostBootSuites();
print "\n";
-
+ print "\t__sync_add_and_fetch(&CxxTest::g_ModulesCompleted, 1);\n";
print "\ttask_end();\n";
print "}\n";
OpenPOWER on IntegriCloud