blob: e02a6e09e13801dba37499a9af83be3f22c1beac (
plain)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
#!/bin/sh
#TODO: add new test cases in environment variables ${TEST_GEN4_XXX}
DIR="$( cd -P "$( dirname "$0" )" && pwd )"
ASSEMBLER="${DIR}/../src/intel-gen4asm"
# Tests that are expected to success because they contain correct code.
# $1 is the gen level, e.g., 4 or 7
# $2 is the test case name
function check_if_work()
{
GEN_LEVEL="$1"
TEST_CASE_NAME="$2"
SOURCE="${TEST_CASE_NAME}.g${1}a"
EXPECTED="${TEST_CASE_NAME}.expected"
TEMP_OUT="temp.out"
${ASSEMBLER} -g ${GEN_LEVEL} ${DIR}/${SOURCE} -o ${TEMP_OUT}
if cmp ${TEMP_OUT} ${DIR}/${EXPECTED} 2> /dev/null;
then
echo "[ OK ] ${TEST_CASE_NAME}";
else
echo "[FAIL] ${TEST_CASE_NAME}";
diff -u ${DIR}/${EXPECTED} ${TEMP_OUT};
fi
}
# Tests that are expected to fail because they contain wrong code.
function check_if_fail()
{
GEN_LEVEL="$1"
TEST_CASE_NAME="$2"
SOURCE="${TEST_CASE_NAME}.g${1}a"
TEMP_OUT="temp.out"
${ASSEMBLER} -g ${GEN_LEVEL} ${DIR}/${SOURCE} -o ${TEMP_OUT} 2>/dev/null
if [ $? -eq 0 ];
then
echo "[FAIL] ${TEST_CASE_NAME}";
else
echo "[ OK ] ${TEST_CASE_NAME}";
fi
}
# Tests that are expected to success because they contain correct code.
TEST_GEN4_SHOULD_WORK="\
mov \
frc \
rndd \
rndu \
rnde \
rnde-intsrc \
rndz \
lzd \
not \
jmpi \
if \
iff \
while \
else \
break \
cont \
halt \
wait \
endif \
declare \
immediate \
"
# Tests that are expected to fail because they contain wrong code.
TEST_GEN4_SHOULD_FAIL="\
rnde-intsrc \
"
for T in ${TEST_GEN4_SHOULD_WORK}
do
check_if_work 4 ${T}
done
for T in ${TEST_GEN4_SHOULD_FAIL}
do
check_if_fail 4 ${T}
done
|