blob: 1e7d0eed9d407d15450943df49fe1e9a86de3218 [file] [log] [blame]
Austin Schuhe89fa2d2019-08-14 20:24:23 -07001#!/bin/bash
2set -e
3#
4# Copyright 2018 Google Inc. All rights reserved.
5#
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17
18if [[ "$1" == "mips-unknown-linux-gnu" ]]; then
19 TARGET_FLAG="--target mips-unknown-linux-gnu"
20 export CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_LINKER=mips-linux-gnu-gcc
21 export CARGO_TARGET_MIPS_UNKNOWN_LINUX_GNU_RUNNER="qemu-mips -L /usr/mips-linux-gnu"
22fi
23
James Kuszmaul8e62b022022-03-22 09:33:25 -070024
25function check_test_result() {
26 if [[ $? == 0 ]]; then
27 echo OK: $1 passed.
28 else
29 echo KO: $1 failed.
30 exit 1
31 fi
32}
33
34cd ./rust_serialize_test
35cargo run $TARGET_FLAG -- --quiet
36check_test_result "Rust serde tests"
37
James Kuszmaul3b15b0c2022-11-08 14:03:16 -080038cd ../rust_no_std_compilation_test
39rustup install nightly
40rustup component add rust-src --toolchain nightly
41rustup target add thumbv7m-none-eabi
42cargo +nightly build
43check_test_result "Rust flatbuffers test no_std compilation"
44
James Kuszmaul8e62b022022-03-22 09:33:25 -070045cd ../rust_usage_test
Austin Schuhe89fa2d2019-08-14 20:24:23 -070046cargo test $TARGET_FLAG -- --quiet
James Kuszmaul8e62b022022-03-22 09:33:25 -070047check_test_result "Rust tests"
48
James Kuszmaul3b15b0c2022-11-08 14:03:16 -080049cargo test $TARGET_FLAG --no-default-features -- --quiet
James Kuszmaul8e62b022022-03-22 09:33:25 -070050check_test_result "Rust tests (no_std)"
Austin Schuhe89fa2d2019-08-14 20:24:23 -070051
Austin Schuh272c6132020-11-14 16:37:52 -080052cargo run $TARGET_FLAG --bin=flatbuffers_alloc_check
James Kuszmaul8e62b022022-03-22 09:33:25 -070053check_test_result "Rust flatbuffers heap alloc test"
Austin Schuh272c6132020-11-14 16:37:52 -080054
55cargo run $TARGET_FLAG --bin=flexbuffers_alloc_check
James Kuszmaul8e62b022022-03-22 09:33:25 -070056check_test_result "Rust flexbuffers heap alloc test"
57
James Kuszmaul3b15b0c2022-11-08 14:03:16 -080058rustup component add clippy
59cargo clippy $TARGET_FLAG
60check_test_result "No Cargo clippy lints test"
Austin Schuhe89fa2d2019-08-14 20:24:23 -070061
62cargo bench $TARGET_FLAG
James Kuszmaul8e62b022022-03-22 09:33:25 -070063
64# This test is dependent on flatc.
65if [[ -f ../../flatc ]]; then
66 cd outdir
67 cargo test
68 check_test_result "Rust generated file in \$OUT_DIR"
69 cd ..
70fi
71
72# RUST_NIGHTLY environment variable set in dockerfile.
73if [[ $RUST_NIGHTLY == 1 ]]; then
74 rustup +nightly component add miri
75 MIRIFLAGS="-Zmiri-disable-isolation" cargo +nightly miri test
76fi