Skip to content

Commit ee970cd

Browse files
committed
Enable output log checking with bazel test.
Signed-off-by: Ted Hong <[email protected]>
1 parent 61a84e3 commit ee970cd

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

test/bazel_test.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ set -ex
55
export TEST_EXT=${TEST_FILE##*.}
66
export TEST_NAME=$(basename "$TEST_FILE" .$TEST_EXT)
77
export OPENROAD_EXE=$(realpath $OPENROAD_EXE)
8-
export LOG_FILE=/dev/stdout
8+
export RESULTS_DIR="${TEST_UNDECLARED_OUTPUTS_DIR}/results"
99
export REGRESSION_TEST=$(realpath $REGRESSION_TEST)
1010

1111
cd $(dirname $TEST_FILE)
12+
mkdir -p $RESULTS_DIR
1213
$REGRESSION_TEST

test/regression.bzl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@ export TEST_NAME_BAZEL={TEST_NAME_BAZEL}
1818
export TEST_FILE={TEST_FILE}
1919
export OPENROAD_EXE={OPENROAD_EXE}
2020
export REGRESSION_TEST={REGRESSION_TEST}
21+
export TEST_CHECK_LOG={TEST_CHECK_LOG}
22+
export TEST_CHECK_PASSFAIL={TEST_CHECK_PASSFAIL}
2123
exec "{bazel_test_sh}" "$@"
2224
""".format(
2325
bazel_test_sh = ctx.file.bazel_test_sh.short_path,
2426
TEST_NAME_BAZEL = ctx.attr.test_name,
2527
TEST_FILE = ctx.file.test_file.short_path,
2628
OPENROAD_EXE = ctx.executable.openroad.short_path,
2729
REGRESSION_TEST = ctx.file.regression_test.short_path,
30+
TEST_CHECK_LOG = "True" if ctx.attr.check_log else "False",
31+
TEST_CHECK_PASSFAIL = "True" if ctx.attr.check_passfail else "False",
2832
),
2933
is_executable = True,
3034
)
@@ -55,6 +59,14 @@ regression_rule_test = rule(
5559
doc = "The Bazel test shell script.",
5660
allow_single_file = True,
5761
),
62+
"check_log": attr.bool(
63+
doc = "Diff the output log against <test_name>.ok",
64+
default = True,
65+
),
66+
"check_passfail": attr.bool(
67+
doc = "Check the output log contains pass or OK in the last line",
68+
default = False,
69+
),
5870
"data": attr.label_list(
5971
doc = "Additional test files required for the test.",
6072
allow_files = True,

test/regression_test.sh

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,27 @@
22

33
set -e
44

5-
mkdir -p results
5+
RESULTS_DIR="${RESULTS_DIR:-results}"
6+
LOG_FILE="${RESULTS_DIR}/$TEST_NAME-$TEST_EXT.log"
67

7-
LOG_FILE=${LOG_FILE:-results/$TEST_NAME-$TEST_EXT.log}
8+
mkdir -p ${RESULTS_DIR}
89

910
ORD_ARGS=""
1011
if [ "$TEST_TYPE" == "python" ]; then
1112
ORD_ARGS="-python"
1213
fi
1314

1415
echo "Directory: ${PWD}"
15-
echo "Command: $OPENROAD_EXE $ORD_ARGS -no_splash -no_init -exit $TEST_NAME.$TEST_EXT &> $LOG_FILE"
16+
echo "Results Directory: ${RESULTS_DIR}"
17+
echo "Command: $OPENROAD_EXE $ORD_ARGS -no_splash -no_init -exit $TEST_NAME.$TEST_EXT |& tee $LOG_FILE"
1618

17-
$OPENROAD_EXE $ORD_ARGS -no_splash -no_init -exit $TEST_NAME.$TEST_EXT &> $LOG_FILE
19+
$OPENROAD_EXE $ORD_ARGS -no_splash -no_init -exit $TEST_NAME.$TEST_EXT |& tee $LOG_FILE
1820

1921
echo "Exitcode: $?"
2022

2123
if [ "$TEST_CHECK_LOG" == "True" ]; then
22-
echo "Diff: ${PWD}/results/$TEST_NAME-$TEST_EXT.diff"
23-
diff $LOG_FILE $TEST_NAME.ok > results/$TEST_NAME-$TEST_EXT.diff
24+
echo "Diff: ${RESULTS_DIR}/$TEST_NAME-$TEST_EXT.diff"
25+
diff $LOG_FILE $TEST_NAME.ok > ${RESULTS_DIR}/$TEST_NAME-$TEST_EXT.diff
2426
fi
2527

2628
if [ "$TEST_CHECK_PASSFAIL" == "True" ]; then

0 commit comments

Comments
 (0)