fork of https://github.com/rustwasm/wasm-pack for the needs of NextGraph.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
wasm-pack/tests/all/wasm_opt.rs

189 lines
4.4 KiB

use crate::utils;
use assert_cmd::prelude::*;
use predicates::prelude::*;
#[test]
fn off_in_dev() {
let fixture = utils::fixture::Fixture::new();
fixture.readme().cargo_toml("foo").file("src/lib.rs", "");
fixture.install_local_wasm_bindgen();
fixture.install_wasm_opt();
fixture
.wasm_pack()
.arg("build")
.arg("--dev")
.assert()
.stderr(predicates::str::contains("wasm-opt").not())
.success();
}
#[test]
fn on_in_release() {
let fixture = utils::fixture::Fixture::new();
fixture.readme().cargo_toml("foo").file("src/lib.rs", "");
fixture.install_local_wasm_bindgen();
fixture.install_wasm_opt();
fixture
.wasm_pack()
.arg("build")
.assert()
.stderr(predicates::str::contains("wasm-opt"))
.success();
}
#[test]
fn disable_in_release() {
let fixture = utils::fixture::Fixture::new();
fixture
.readme()
.file(
"Cargo.toml",
r#"
[package]
authors = []
description = ""
license = "MIT"
name = "foo"
repository = ""
version = "0.1.0"
[lib]
crate-type = ["cdylib"]
[dependencies]
wasm-bindgen = "0.2"
[package.metadata.wasm-pack.profile.release]
wasm-opt = false
"#,
)
.file("src/lib.rs", "");
fixture.install_local_wasm_bindgen();
fixture.install_wasm_opt();
fixture
.wasm_pack()
.arg("build")
.assert()
.stderr(predicates::str::contains("wasm-opt").not())
.success();
}
#[test]
fn enable_in_dev() {
let fixture = utils::fixture::Fixture::new();
fixture
.readme()
.file(
"Cargo.toml",
r#"
[package]
authors = []
description = ""
license = "MIT"
name = "foo"
repository = ""
version = "0.1.0"
[lib]
crate-type = ["cdylib"]
[dependencies]
wasm-bindgen = "0.2"
[package.metadata.wasm-pack.profile.dev]
wasm-opt = true
"#,
)
.file("src/lib.rs", "");
fixture.install_local_wasm_bindgen();
fixture.install_wasm_opt();
fixture
.wasm_pack()
.arg("build")
.arg("--dev")
.assert()
.stderr(predicates::str::contains(
"Optimizing wasm binaries with `wasm-opt`",
))
.success();
}
#[test]
fn custom_args() {
let fixture = utils::fixture::Fixture::new();
fixture
.readme()
.file(
"Cargo.toml",
r#"
[package]
authors = []
description = ""
license = "MIT"
name = "foo"
repository = ""
version = "0.1.0"
[lib]
crate-type = ["cdylib"]
[dependencies]
wasm-bindgen = "0.2"
[package.metadata.wasm-pack.profile.release]
wasm-opt = ['--not-accepted-argument']
"#,
)
.file("src/lib.rs", "");
fixture.install_local_wasm_bindgen();
fixture.install_wasm_opt();
fixture
.wasm_pack()
.arg("build")
.assert()
.stderr(predicates::str::contains("--not-accepted-argument"))
.failure();
}
#[test]
fn misconfigured() {
let fixture = utils::fixture::Fixture::new();
fixture
.readme()
.file(
"Cargo.toml",
r#"
[package]
authors = []
description = ""
license = "MIT"
name = "foo"
repository = ""
version = "0.1.0"
[lib]
crate-type = ["cdylib"]
[dependencies]
wasm-bindgen = "0.2"
[package.metadata.wasm-pack.profile.release]
wasm-opt = 32
"#,
)
.file("src/lib.rs", "");
fixture.install_local_wasm_bindgen();
fixture.install_wasm_opt();
fixture
.wasm_pack()
.arg("build")
.assert()
.stderr(predicates::str::contains("failed to parse manifest"))
.failure();
}