* same with xv6
[mascara-docs.git] / i386 / ucla / src / lab5 / grade-lab1.sh
blob4625e3c5b9c7acd0f6ee1188e2a531ded100a5e2
1 #!/bin/sh
3 qemuopts="-hda obj/kernel.img"
4 . ./grade-functions.sh
7 $make $make_args
9 check () {
10 pts=20
11 echo_n "Printf: "
12 text="6828 decimal is 15254 octal!"
13 if grep "$text" jos.out >/dev/null
14 then
15 pass
16 else
17 fail
20 pts=10
21 echo "Backtrace:"
22 args=`grep "ebp f01.* eip f0100.* args" jos.out | \
23 sed 's/^ *[0-9]*://' | \
24 awk '{ print $6 }'`
25 cnt=`echo $args | grep '^00000000 00000000 00000001 00000002 00000003 00000004 00000005' | wc -w`
26 echo_n " Count "
27 if [ $cnt -eq 8 ]
28 then
29 pass
30 else
31 fail
34 cnt=`grep "ebp f01.* eip f0100.* args" jos.out | \
35 sed 's/^ *[0-9]*://' | \
36 awk 'BEGIN { FS = ORS = " " }
37 { print $6 }
38 END { printf("\n") }' | grep '^00000000 00000000 00000001 00000002 00000003 00000004 00000005' | wc -w`
39 echo_n " Args "
40 if [ $cnt -eq 8 ]; then
41 pass
42 else
43 fail "($args)"
46 syms=`$cxxfilt < jos.out | grep "kern/init.c:[0-9]*: *test_backtrace[(+]"`
47 symcnt=`$cxxfilt < jos.out | grep "kern/init.c:[0-9]*: *test_backtrace[(+]" | wc -l`
48 echo_n " Symbols "
49 if [ $symcnt -eq 6 ]; then
50 pass
51 elif [ $symcnt -eq 0 ]; then
52 fail "found no symbols"
53 else
54 fail "found wrong symbols ($syms)"
58 run
59 check
61 showfinal