Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
google
GitHub Repository: google/crosvm
Path: blob/main/e2e_tests/tests/prebuilts.rs
5394 views
1
// Copyright 2022 The ChromiumOS Authors
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
use std::env;
6
7
use prebuilts::download_prebuilt;
8
use prebuilts::download_prebuilts;
9
use tempfile::TempDir;
10
11
static LIBRARY: &str = "prebuilts_test";
12
static PREBUILT_FILE1: &str = "prebuilt_test";
13
static PREBUILT_FILE2: &str = "prebuilt_test2";
14
static VERSION: u32 = 1;
15
16
fn setup_env(build_type: &str) -> TempDir {
17
let tempdir = tempfile::tempdir().unwrap();
18
if build_type == "debug" {
19
env::set_var("DEBUG", "");
20
} else {
21
env::remove_var("DEBUG");
22
}
23
env::set_var("CARGO_CFG_TARGET_FAMILY", "windows");
24
env::set_var("CARGO_CFG_TARGET_ARCH", "x86_64");
25
env::set_var("CARGO_CFG_TARGET_ENV", "gnu");
26
let deps = tempdir.path().join("deps");
27
std::fs::create_dir_all(deps).unwrap();
28
let out_dir = tempdir.path().join("build").join("crate_name").join("out");
29
std::fs::create_dir_all(&out_dir).unwrap();
30
env::set_var("OUT_DIR", out_dir.as_os_str().to_str().unwrap());
31
tempdir
32
}
33
34
#[test]
35
fn test_download_prebuilt() {
36
for build_type in ["release", "debug"] {
37
let _tempdir = setup_env(build_type);
38
let file = download_prebuilt(LIBRARY, VERSION, PREBUILT_FILE1).unwrap();
39
assert!(file.exists());
40
assert_eq!(
41
std::fs::read_to_string(&file).unwrap(),
42
format!("hello world {build_type}\n")
43
);
44
}
45
}
46
47
#[test]
48
fn test_download_prebuilt_files() {
49
for build_type in ["release", "debug"] {
50
let _tempdir = setup_env(build_type);
51
let files =
52
download_prebuilts(LIBRARY, VERSION, &[PREBUILT_FILE1, PREBUILT_FILE2]).unwrap();
53
for file in files {
54
assert!(file.exists());
55
assert_eq!(
56
std::fs::read_to_string(&file).unwrap(),
57
format!("hello world {build_type}\n"),
58
"failed for file {file:?}"
59
);
60
}
61
}
62
}
63
64