Sha256: 8375c4b7b30a6e381790be5dceed9b093a85edfdfdfd346f63a92c112f158454

Contents?: true

Size: 1.22 KB

Versions: 31

Compression:

Stored size: 1.22 KB

Contents

use std::fmt::Write;

fn main() {
    println!("cargo:rerun-if-changed=build.rs");
    println!("cargo:rerun-if-changed=isle_examples");

    let out_dir = std::path::PathBuf::from(
        std::env::var_os("OUT_DIR").expect("The OUT_DIR environment variable must be set"),
    );

    let mut out = String::new();

    emit_tests(&mut out, "isle_examples/pass", "run_pass");
    emit_tests(&mut out, "isle_examples/fail", "run_fail");
    emit_tests(&mut out, "isle_examples/link", "run_link");
    emit_tests(&mut out, "isle_examples/run", "run_run");

    let output = out_dir.join("isle_tests.rs");
    std::fs::write(output, out).unwrap();
}

fn emit_tests(out: &mut String, dir_name: &str, runner_func: &str) {
    for test_file in std::fs::read_dir(dir_name).unwrap() {
        let test_file = test_file.unwrap().file_name().into_string().unwrap();
        if !test_file.ends_with(".isle") {
            continue;
        }
        let test_file_base = test_file.replace(".isle", "");

        writeln!(out, "#[test]").unwrap();
        writeln!(out, "fn test_{}_{}() {{", runner_func, test_file_base).unwrap();
        writeln!(out, "    {}(\"{}/{}\");", runner_func, dir_name, test_file).unwrap();
        writeln!(out, "}}").unwrap();
    }
}

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
wasmtime-24.0.0 ./ext/cargo-vendor/cranelift-isle-0.111.0/build.rs
wasmtime-23.0.2 ./ext/cargo-vendor/cranelift-isle-0.110.2/build.rs
wasmtime-22.0.0 ./ext/cargo-vendor/cranelift-isle-0.109.0/build.rs
wasmtime-21.0.1 ./ext/cargo-vendor/cranelift-isle-0.108.1/build.rs
wasmtime-20.0.2 ./ext/cargo-vendor/cranelift-isle-0.107.2/build.rs
wasmtime-20.0.0 ./ext/cargo-vendor/cranelift-isle-0.107.2/build.rs
wasmtime-18.0.3 ./ext/cargo-vendor/cranelift-isle-0.105.3/build.rs
wasmtime-17.0.1 ./ext/cargo-vendor/cranelift-isle-0.104.1/build.rs
wasmtime-17.0.0 ./ext/cargo-vendor/cranelift-isle-0.104.0/build.rs
wasmtime-16.0.0 ./ext/cargo-vendor/cranelift-isle-0.103.0/build.rs
wasmtime-15.0.1 ./ext/cargo-vendor/cranelift-isle-0.102.1/build.rs
wasmtime-15.0.0 ./ext/cargo-vendor/cranelift-isle-0.102.1/build.rs
wasmtime-14.0.4 ./ext/cargo-vendor/cranelift-isle-0.101.4/build.rs
wasmtime-14.0.3 ./ext/cargo-vendor/cranelift-isle-0.101.4/build.rs
wasmtime-14.0.1 ./ext/cargo-vendor/cranelift-isle-0.101.1/build.rs
wasmtime-14.0.0 ./ext/cargo-vendor/cranelift-isle-0.101.1/build.rs
wasmtime-13.0.0 ./ext/cargo-vendor/cranelift-isle-0.100.0/build.rs
wasmtime-12.0.1 ./ext/cargo-vendor/cranelift-isle-0.99.1/build.rs
wasmtime-12.0.0 ./ext/cargo-vendor/cranelift-isle-0.99.1/build.rs
wasmtime-11.0.0 ./ext/cargo-vendor/cranelift-isle-0.98.1/build.rs