Kokoro: Add configs for a linux UBSAN build

Bug: tint:760
Change-Id: If13fe1d8b63f058471aa19854277ca413e23f384
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/49524
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
diff --git a/kokoro/linux/cmake-clang-debug-ubsan/build.sh b/kokoro/linux/cmake-clang-debug-ubsan/build.sh
new file mode 100755
index 0000000..55f4db1
--- /dev/null
+++ b/kokoro/linux/cmake-clang-debug-ubsan/build.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# Copyright 2021 The Tint Authors.
+#
+# 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.
+
+set -e # Fail on any error.
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
+
+export BUILD_SYSTEM=cmake
+export BUILD_TOOLCHAIN=clang
+export BUILD_TYPE=Debug
+export BUILD_SANITIZER=ubsan
+
+${SCRIPT_DIR}/../build.sh
diff --git a/kokoro/linux/cmake-clang-debug-ubsan/presubmit.cfg b/kokoro/linux/cmake-clang-debug-ubsan/presubmit.cfg
new file mode 100644
index 0000000..5fa246e
--- /dev/null
+++ b/kokoro/linux/cmake-clang-debug-ubsan/presubmit.cfg
@@ -0,0 +1,3 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+build_file: "tint/kokoro/linux/cmake-clang-debug-ubsan/build.sh"
diff --git a/kokoro/linux/cmake-clang-release-ubsan/build.sh b/kokoro/linux/cmake-clang-release-ubsan/build.sh
new file mode 100755
index 0000000..c476289
--- /dev/null
+++ b/kokoro/linux/cmake-clang-release-ubsan/build.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# Copyright 2021 The Tint Authors.
+#
+# 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.
+
+set -e # Fail on any error.
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
+
+export BUILD_SYSTEM=cmake
+export BUILD_TOOLCHAIN=clang
+export BUILD_TYPE=Release
+export BUILD_SANITIZER=ubsan
+
+${SCRIPT_DIR}/../build.sh
diff --git a/kokoro/linux/cmake-clang-release-ubsan/presubmit.cfg b/kokoro/linux/cmake-clang-release-ubsan/presubmit.cfg
new file mode 100644
index 0000000..f968295
--- /dev/null
+++ b/kokoro/linux/cmake-clang-release-ubsan/presubmit.cfg
@@ -0,0 +1,3 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+build_file: "tint/kokoro/linux/cmake-clang-release-ubsan/build.sh"
diff --git a/kokoro/linux/docker.sh b/kokoro/linux/docker.sh
index 6a8358c..516518e 100755
--- a/kokoro/linux/docker.sh
+++ b/kokoro/linux/docker.sh
@@ -90,6 +90,9 @@
 
     if [ "$BUILD_SANITIZER" == "asan" ]; then
         COMMON_CMAKE_FLAGS+=" -DTINT_ENABLE_ASAN=1"
+    elif [ "$BUILD_SANITIZER" == "ubsan" ]; then
+        COMMON_CMAKE_FLAGS+=" -DTINT_ENABLE_UBSAN=1"
+        export UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1
     fi
 
     cd ${BUILD_DIR}