diff options
Diffstat (limited to 'tests/expand_template')
-rw-r--r-- | tests/expand_template/BUILD | 57 | ||||
-rwxr-xr-x | tests/expand_template/template_test.sh | 37 | ||||
-rw-r--r-- | tests/expand_template/test.cc | 27 | ||||
-rw-r--r-- | tests/expand_template/test.tpl.yaml | 2 | ||||
-rw-r--r-- | tests/expand_template/version.h.in | 1 |
5 files changed, 124 insertions, 0 deletions
diff --git a/tests/expand_template/BUILD b/tests/expand_template/BUILD new file mode 100644 index 0000000..0607111 --- /dev/null +++ b/tests/expand_template/BUILD @@ -0,0 +1,57 @@ +# Copyright 2022 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This package aids testing the 'diff_test' rule. + +load("//rules:expand_template.bzl", "expand_template") + +expand_template( + name = "filled_template", + out = "foo/test.yaml", + substitutions = { + "@name@": "test", + "@version@": "1.1.1", + }, + template = "test.tpl.yaml", +) + +sh_test( + name = "template_test", + srcs = ["template_test.sh"], + data = [ + "foo/test.yaml", + ":filled_template", + "//tests:unittest.bash", + ], + deps = [ + "@bazel_tools//tools/bash/runfiles", + ], +) + +expand_template( + name = "version", + out = "version.h", + substitutions = { + "@VERSION@": "2.3.4", + }, + template = "version.h.in", +) + +cc_test( + name = "test", + srcs = [ + "test.cc", + ":version", + ], +) diff --git a/tests/expand_template/template_test.sh b/tests/expand_template/template_test.sh new file mode 100755 index 0000000..10099a4 --- /dev/null +++ b/tests/expand_template/template_test.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +# Copyright 2022 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# --- begin runfiles.bash initialization v2 --- +# Copy-pasted from the Bazel Bash runfiles library v2. +set -uo pipefail; f=bazel_tools/tools/bash/runfiles/runfiles.bash +source "${RUNFILES_DIR:-/dev/null}/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "${RUNFILES_MANIFEST_FILE:-/dev/null}" | cut -f2- -d' ')" 2>/dev/null || \ + source "$0.runfiles/$f" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + source "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \ + { echo>&2 "ERROR: cannot find $f"; exit 1; }; f=; set -e +# --- end runfiles.bash initialization v2 --- + +source "$(rlocation $TEST_WORKSPACE/tests/unittest.bash)" \ + || { echo "Could not source bazel_skylib/tests/unittest.bash" >&2; exit 1; } + +function test_expand_template() { + cat "$(rlocation $TEST_WORKSPACE/tests/expand_template/foo/test.yaml)" >"$TEST_log" + expect_log 'name: test' + expect_log 'version: 1.1.1' +} + +run_suite "expand_template_tests test suite"
\ No newline at end of file diff --git a/tests/expand_template/test.cc b/tests/expand_template/test.cc new file mode 100644 index 0000000..3b13e7a --- /dev/null +++ b/tests/expand_template/test.cc @@ -0,0 +1,27 @@ +// Copyright 2022 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "tests/expand_template/version.h" + +#include <cstring> + +int main(int argc, char **argv) { + // VERSION should be "2.3.4" + if(strcmp(VERSION, "2.3.4") == 0) { + return 0; // success + } + else { + return 1; // failure + } +} diff --git a/tests/expand_template/test.tpl.yaml b/tests/expand_template/test.tpl.yaml new file mode 100644 index 0000000..03d9fdd --- /dev/null +++ b/tests/expand_template/test.tpl.yaml @@ -0,0 +1,2 @@ +name: @name@ +version: @version@ diff --git a/tests/expand_template/version.h.in b/tests/expand_template/version.h.in new file mode 100644 index 0000000..deb8418 --- /dev/null +++ b/tests/expand_template/version.h.in @@ -0,0 +1 @@ +#define VERSION "@VERSION@"
\ No newline at end of file |