aboutsummaryrefslogtreecommitdiff
path: root/tests/expand_template
diff options
context:
space:
mode:
Diffstat (limited to 'tests/expand_template')
-rw-r--r--tests/expand_template/BUILD57
-rwxr-xr-xtests/expand_template/template_test.sh37
-rw-r--r--tests/expand_template/test.cc27
-rw-r--r--tests/expand_template/test.tpl.yaml2
-rw-r--r--tests/expand_template/version.h.in1
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