-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathRUN_REGRESSIONS
50 lines (42 loc) · 1.9 KB
/
RUN_REGRESSIONS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
You can run your own regressions. This can be incredibly handy for test.
For example, when I've changed something in the kernel and want to test it,
I can put a throwaway print line in the kernel.
Then I cd to ~/nxm, and run this script:
sh ~/jenkinshook.
The script is tailored to my environment and looks like this:
#!/bin/bash
PATH=/home/rminnich/bin:$PATH
set
# The jenkinshook uses this variable.
export JENKINSHOME="/home/rminnich"
# sh -x ./jenkinshook
echo "For debugging errors, we cat the jenkins hook here"
echo "==="
cat jenkinshook
echo "==="
. ./jenkinshook
This does a clean build of everything -- libraries, commands,
kernels -- and then boots the k8regression kernel. If all goes well, you see
a date at the end. If not, you see lots of output. The output
is the diff between sys/src/correctoutput and sys/src/qemuout.
You're also going to need one more file, for the inferno config.
It is called mkconfig.jenkins
It goes in $JENKINSHOME. Mine looks like this:
#
# Set the following 4 variables. The host system is the system where
# the software will be built; the target system is where it will run.
# They are almost always the same.
ROOT=$NXM/inferno-os/
TKSTYLE=std
SYSHOST=Linux # build system OS type (Hp, Inferno, Irix, Linux, MacOSX, Nt, Plan9, Solaris)
SYSTARG=$SYSHOST # target system OS type (Hp, Inferno, Irix, Linux, Nt, Plan9, Solaris)
OBJTYPE=386
OBJDIR=$SYSTARG/$OBJTYPE
<$ROOT/mkfiles/mkhost-$SYSHOST # variables appropriate for host system
<$ROOT/mkfiles/mkfile-$SYSTARG-$OBJTYPE # variables used to build target object type
Just recently, I was testing the new system call stuff.
I put a print in that tested whether the new args matched the args
on the stack.
It did not, and it was really easy to find out this way before trying
to run on real hardware. Going beyond build to a full boot, in the linux
command line, is a real timesaver.