Enable, fix, and extend genrule stamping tests.
The genrule stamping tests were not enabled and were broken.
Further, I extended them to cover the behavior of no explicit stamp attr value being provided.
Closes
@@ -29,32 +29,53 @@ function set_up() {
genrule(
name = "stamped",
outs = ["stamped.txt"],
- cmd = "grep BUILD_TIMESTAMP volatile-status.txt | cut -d 2 -f ' ' >$@",
+ cmd = "grep BUILD_TIMESTAMP bazel-out/volatile-status.txt | cut -d ' ' -f 2 >\$@",
stamp = True,
)
genrule(
name = "unstamped",
outs = ["unstamped.txt"],
- cmd = "grep BUILD_TIMESTAMP volatile-status.txt | cut -d 2 -f ' ' >$@",
+ cmd = "(grep BUILD_TIMESTAMP bazel-out/volatile-status.txt || echo 'x 0') | cut -d ' ' -f 2 >\$@",
stamp = False,
)
+
+genrule(
+ name = "unspecified",
+ outs = ["unspecified.txt"],
+ cmd = "(grep BUILD_TIMESTAMP bazel-out/volatile-status.txt || echo 'x 0') | cut -d ' ' -f 2 >\$@",
+)
EOF
}
function test_source_date_epoch() {
+ # test --nostamp
bazel clean --expunge &> $TEST_log
bazel build --nostamp //pkg:* &> $TEST_log || fail "failed to build //pkg:*"
- expect_equals 0 $(cat bazel-genfiles/pkg/stamped.txt)
- expect_equals 0 $(cat bazel-genfiles/pkg/unstamped.txt)
+ assert_not_equals 0 $(cat bazel-genfiles/pkg/stamped.txt)
+ assert_equals 0 $(cat bazel-genfiles/pkg/unstamped.txt)
+ assert_equals 0 $(cat bazel-genfiles/pkg/unspecified.txt)
+ # test --nostamp, explicit epoch=0
bazel clean --expunge &> $TEST_log
SOURCE_DATE_EPOCH=0 bazel build --stamp //pkg:* &> $TEST_log || fail "failed to build //pkg:*"
- expect_equals 0 $(cat bazel-genfiles/pkg/stamped.txt)
- expect_equals 0 $(cat bazel-genfiles/pkg/unstamped.txt)
+ assert_equals 0 $(cat bazel-genfiles/pkg/stamped.txt)
+ assert_equals 0 $(cat bazel-genfiles/pkg/unstamped.txt)
+ assert_equals 0 $(cat bazel-genfiles/pkg/unspecified.txt)
+ # test --stamp, explicit epoch=0
bazel clean --expunge &> $TEST_log
SOURCE_DATE_EPOCH=10 bazel build --stamp //pkg:* &> $TEST_log || fail "failed to build //pkg:*"
- expect_equals 10 $(cat bazel-genfiles/pkg/stamped.txt)
- expect_equals 0 $(cat bazel-genfiles/pkg/unstamped.txt)
+ assert_equals 10 $(cat bazel-genfiles/pkg/stamped.txt)
+ assert_equals 0 $(cat bazel-genfiles/pkg/unstamped.txt)
+ assert_equals 0 $(cat bazel-genfiles/pkg/unspecified.txt)
+
+ # test no stamp flag, explicit epoch=10
+ bazel clean --expunge &> $TEST_log
+ SOURCE_DATE_EPOCH=10 bazel build //pkg:* &> $TEST_log || fail "failed to build //pkg:*"
+ assert_equals 10 $(cat bazel-genfiles/pkg/stamped.txt)
+ assert_equals 0 $(cat bazel-genfiles/pkg/unstamped.txt)
+ assert_equals 0 $(cat bazel-genfiles/pkg/unspecified.txt)
}
+
+run_suite "Tests for genrule stamping"
