Skip to content

Commit

Permalink
feat(testing): Add CARGO_TARGET_DIR and use it from other crates (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Jun 21, 2023
1 parent 5bee462 commit 46fb461
Show file tree
Hide file tree
Showing 10 changed files with 29 additions and 59 deletions.
3 changes: 2 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions crates/swc_ecma_testing/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ anyhow = "1"
hex = "0.4"
sha-1 = "0.10"
tracing = "0.1.32"

testing = { version = "0.33.14", path = "../testing" }
13 changes: 2 additions & 11 deletions crates/swc_ecma_testing/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use std::{env, fs, path::PathBuf, process::Command};

use anyhow::{bail, Context, Result};
use sha1::{Digest, Sha1};
use testing::CARGO_TARGET_DIR;
use tracing::debug;

#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
Expand All @@ -26,20 +27,10 @@ pub struct JsExecOptions {
pub args: Vec<String>,
}

fn cargo_manifest_dir() -> PathBuf {
env::var("CARGO_MANIFEST_DIR").unwrap().into()
}

fn cargo_cache_root() -> PathBuf {
env::var("SWC_ECMA_TESTING_CACHE_DIR")
.map(PathBuf::from)
.unwrap_or_else(|_| {
env::var("TARGET").map(PathBuf::from).unwrap_or_else(|_| {
let mut target_dir = cargo_manifest_dir();
target_dir.push("target");
target_dir
})
})
.unwrap_or_else(|_| CARGO_TARGET_DIR.clone())
}

/// Executes `js_code` and capture thw output.
Expand Down
3 changes: 1 addition & 2 deletions crates/swc_plugin_runner/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,7 @@ wasmer-cache = { version = "3.3.0", optional = true }
wasmer-compiler-cranelift = { version = "3.3.0", default-features = false }

[dev-dependencies]
cargo_metadata = "0.15.4"
criterion = "0.3"
criterion = "0.3"

swc_atoms = { version = "0.5.6", path = '../swc_atoms' }
swc_css_ast = { version = "0.137.12", path = "../swc_css_ast", features = [
Expand Down
14 changes: 3 additions & 11 deletions crates/swc_plugin_runner/tests/css_rkyv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,14 @@ use swc_common::{
collections::AHashMap, plugin::metadata::TransformPluginMetadataContext, sync::Lazy, FileName,
Mark,
};
use testing::CARGO_TARGET_DIR;
use tracing::info;

static TARGET_DIR: Lazy<PathBuf> = Lazy::new(|| {
cargo_metadata::MetadataCommand::new()
.no_deps()
.exec()
.unwrap()
.target_directory
.into()
});

/// Returns the path to the built plugin
fn build_plugin(dir: &Path) -> Result<PathBuf, Error> {
{
let mut cmd = Command::new("cargo");
cmd.env("CARGO_TARGET_DIR", &*TARGET_DIR);
cmd.env("CARGO_TARGET_DIR", &*CARGO_TARGET_DIR);

cmd.current_dir(dir);
cmd.args(["build", "--target=wasm32-wasi", "--release"])
Expand All @@ -45,7 +37,7 @@ fn build_plugin(dir: &Path) -> Result<PathBuf, Error> {
}
}

for entry in fs::read_dir(&TARGET_DIR.join("wasm32-wasi").join("release"))? {
for entry in fs::read_dir(&CARGO_TARGET_DIR.join("wasm32-wasi").join("release"))? {
let entry = entry?;

let s = entry.file_name().to_string_lossy().into_owned();
Expand Down
14 changes: 3 additions & 11 deletions crates/swc_plugin_runner/tests/ecma_integration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,13 @@ use swc_common::{
use swc_ecma_ast::{CallExpr, Callee, EsVersion, Expr, Lit, MemberExpr, Program, Str};
use swc_ecma_parser::{parse_file_as_program, Syntax};
use swc_ecma_visit::{Visit, VisitWith};

static TARGET_DIR: Lazy<PathBuf> = Lazy::new(|| {
cargo_metadata::MetadataCommand::new()
.no_deps()
.exec()
.unwrap()
.target_directory
.into()
});
use testing::CARGO_TARGET_DIR;

/// Returns the path to the built plugin
fn build_plugin(dir: &Path) -> Result<PathBuf, Error> {
{
let mut cmd = Command::new("cargo");
cmd.env("CARGO_TARGET_DIR", &*TARGET_DIR);
cmd.env("CARGO_TARGET_DIR", &*CARGO_TARGET_DIR);
cmd.current_dir(dir);
cmd.args(["build", "--target=wasm32-wasi"])
.stderr(Stdio::inherit());
Expand All @@ -47,7 +39,7 @@ fn build_plugin(dir: &Path) -> Result<PathBuf, Error> {
}
}

for entry in fs::read_dir(&TARGET_DIR.join("wasm32-wasi").join("debug"))? {
for entry in fs::read_dir(&CARGO_TARGET_DIR.join("wasm32-wasi").join("debug"))? {
let entry = entry?;

let s = entry.file_name().to_string_lossy().into_owned();
Expand Down
14 changes: 3 additions & 11 deletions crates/swc_plugin_runner/tests/ecma_rkyv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,14 @@ use swc_common::{
};
use swc_ecma_ast::{EsVersion, Program};
use swc_ecma_parser::{parse_file_as_program, Syntax, TsConfig};
use testing::CARGO_TARGET_DIR;
use tracing::info;

static TARGET_DIR: Lazy<PathBuf> = Lazy::new(|| {
cargo_metadata::MetadataCommand::new()
.no_deps()
.exec()
.unwrap()
.target_directory
.into()
});

/// Returns the path to the built plugin
fn build_plugin(dir: &Path) -> Result<PathBuf, Error> {
{
let mut cmd = Command::new("cargo");
cmd.env("CARGO_TARGET_DIR", &*TARGET_DIR);
cmd.env("CARGO_TARGET_DIR", &*CARGO_TARGET_DIR);
cmd.current_dir(dir);
cmd.args(["build", "--target=wasm32-wasi", "--release"])
.stderr(Stdio::inherit());
Expand All @@ -46,7 +38,7 @@ fn build_plugin(dir: &Path) -> Result<PathBuf, Error> {
}
}

for entry in fs::read_dir(&TARGET_DIR.join("wasm32-wasi").join("release"))? {
for entry in fs::read_dir(&CARGO_TARGET_DIR.join("wasm32-wasi").join("release"))? {
let entry = entry?;

let s = entry.file_name().to_string_lossy().into_owned();
Expand Down
15 changes: 3 additions & 12 deletions crates/swc_plugin_runner/tests/issues.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,20 @@ use std::{
};

use anyhow::{anyhow, Error};
use once_cell::sync::Lazy;
use serde_json::json;
#[cfg(feature = "__rkyv")]
use swc_common::plugin::serialized::PluginSerializedBytes;
use swc_common::{collections::AHashMap, plugin::metadata::TransformPluginMetadataContext, Mark};
use swc_ecma_ast::{CallExpr, Callee, EsVersion, Expr, Lit, MemberExpr, Program, Str};
use swc_ecma_parser::{parse_file_as_program, Syntax};
use swc_ecma_visit::Visit;

static TARGET_DIR: Lazy<PathBuf> = Lazy::new(|| {
cargo_metadata::MetadataCommand::new()
.no_deps()
.exec()
.unwrap()
.target_directory
.into()
});
use testing::CARGO_TARGET_DIR;

/// Returns the path to the built plugin
fn build_plugin(dir: &Path, crate_name: &str) -> Result<PathBuf, Error> {
{
let mut cmd = Command::new("cargo");
cmd.env("CARGO_TARGET_DIR", &*TARGET_DIR);
cmd.env("CARGO_TARGET_DIR", &*CARGO_TARGET_DIR);
cmd.current_dir(dir);
cmd.args(["build", "--release", "--target=wasm32-wasi"])
.stderr(Stdio::inherit());
Expand All @@ -45,7 +36,7 @@ fn build_plugin(dir: &Path, crate_name: &str) -> Result<PathBuf, Error> {
}
}

for entry in fs::read_dir(&TARGET_DIR.join("wasm32-wasi").join("release"))? {
for entry in fs::read_dir(&CARGO_TARGET_DIR.join("wasm32-wasi").join("release"))? {
let entry = entry?;

let s = entry.file_name().to_string_lossy().into_owned();
Expand Down
1 change: 1 addition & 0 deletions crates/testing/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ bench = false

[dependencies]
ansi_term = "0.12.1"
cargo_metadata = "0.15.4"
difference = "2"
once_cell = "1.10.0"
pretty_assertions = "1.1"
Expand Down
9 changes: 9 additions & 0 deletions crates/testing/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -309,3 +309,12 @@ pub fn unignore_fixture(fixture_path: &Path) {

rename(fixture_path, &new_path).expect("failed to rename");
}

pub static CARGO_TARGET_DIR: Lazy<PathBuf> = Lazy::new(|| {
cargo_metadata::MetadataCommand::new()
.no_deps()
.exec()
.unwrap()
.target_directory
.into()
});

1 comment on commit 46fb461

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 46fb461 Previous: 6e5d8b3 Ratio
es/full/bugs-1 352259 ns/iter (± 5190) 374417 ns/iter (± 12906) 0.94
es/full/minify/libraries/antd 2315249821 ns/iter (± 23747605) 2146905995 ns/iter (± 31022751) 1.08
es/full/minify/libraries/d3 391629807 ns/iter (± 8941146) 458019398 ns/iter (± 20375984) 0.86
es/full/minify/libraries/echarts 1696592004 ns/iter (± 45935019) 1739869667 ns/iter (± 46565211) 0.98
es/full/minify/libraries/jquery 121909391 ns/iter (± 4336820) 113149990 ns/iter (± 1302806) 1.08
es/full/minify/libraries/lodash 142467856 ns/iter (± 3161307) 138005168 ns/iter (± 1776251) 1.03
es/full/minify/libraries/moment 65898314 ns/iter (± 645998) 69317021 ns/iter (± 2911808) 0.95
es/full/minify/libraries/react 23532904 ns/iter (± 232988) 24207797 ns/iter (± 650982) 0.97
es/full/minify/libraries/terser 351788720 ns/iter (± 22149522) 334742032 ns/iter (± 9697064) 1.05
es/full/minify/libraries/three 629878777 ns/iter (± 15918262) 593107006 ns/iter (± 10659853) 1.06
es/full/minify/libraries/typescript 4135869460 ns/iter (± 75430649) 4314130384 ns/iter (± 129987928) 0.96
es/full/minify/libraries/victory 958538005 ns/iter (± 21390267) 898601471 ns/iter (± 20412538) 1.07
es/full/minify/libraries/vue 169128935 ns/iter (± 8203430) 167290559 ns/iter (± 2674260) 1.01
es/full/codegen/es3 41212 ns/iter (± 602) 41810 ns/iter (± 82) 0.99
es/full/codegen/es5 41046 ns/iter (± 166) 41849 ns/iter (± 108) 0.98
es/full/codegen/es2015 41147 ns/iter (± 76) 41933 ns/iter (± 81) 0.98
es/full/codegen/es2016 41082 ns/iter (± 123) 41915 ns/iter (± 115) 0.98
es/full/codegen/es2017 41129 ns/iter (± 127) 41931 ns/iter (± 66) 0.98
es/full/codegen/es2018 41199 ns/iter (± 103) 41917 ns/iter (± 70) 0.98
es/full/codegen/es2019 41144 ns/iter (± 150) 41841 ns/iter (± 67) 0.98
es/full/codegen/es2020 41167 ns/iter (± 73) 41875 ns/iter (± 111) 0.98
es/full/all/es3 209594716 ns/iter (± 1882925) 210522788 ns/iter (± 3692829) 1.00
es/full/all/es5 202385855 ns/iter (± 3570684) 201533904 ns/iter (± 3755300) 1.00
es/full/all/es2015 156881532 ns/iter (± 2106426) 158910523 ns/iter (± 2363631) 0.99
es/full/all/es2016 156269216 ns/iter (± 3364754) 158281789 ns/iter (± 1846758) 0.99
es/full/all/es2017 157625694 ns/iter (± 1328404) 156764246 ns/iter (± 2119447) 1.01
es/full/all/es2018 154229728 ns/iter (± 2903009) 153186677 ns/iter (± 1531012) 1.01
es/full/all/es2019 151649660 ns/iter (± 2308899) 152916457 ns/iter (± 1781199) 0.99
es/full/all/es2020 148288958 ns/iter (± 3621706) 151964315 ns/iter (± 3060253) 0.98
es/full/parser 611926 ns/iter (± 13049) 620177 ns/iter (± 14854) 0.99
es/full/base/fixer 24501 ns/iter (± 47) 24688 ns/iter (± 49) 0.99
es/full/base/resolver_and_hygiene 105146 ns/iter (± 126) 105167 ns/iter (± 179) 1.00
serialization of serde 259 ns/iter (± 0) 257 ns/iter (± 0) 1.01
css/minify/libraries/bootstrap 36909829 ns/iter (± 190499) 39660822 ns/iter (± 596261) 0.93
css/visitor/compare/clone 2390339 ns/iter (± 30049) 2371276 ns/iter (± 10621) 1.01
css/visitor/compare/visit_mut_span 2585614 ns/iter (± 12203) 2554937 ns/iter (± 5424) 1.01
css/visitor/compare/visit_mut_span_panic 2612637 ns/iter (± 15704) 2649818 ns/iter (± 7273) 0.99
css/visitor/compare/fold_span 3342856 ns/iter (± 41885) 3385218 ns/iter (± 63592) 0.99
css/visitor/compare/fold_span_panic 3554911 ns/iter (± 24169) 3571571 ns/iter (± 69680) 1.00
css/lexer/bootstrap_5_1_3 5586340 ns/iter (± 3862) 5593730 ns/iter (± 3696) 1.00
css/lexer/foundation_6_7_4 4704171 ns/iter (± 1361) 4708198 ns/iter (± 3240) 1.00
css/lexer/tailwind_3_1_1 894469 ns/iter (± 528) 892693 ns/iter (± 736) 1.00
css/parser/bootstrap_5_1_3 24583035 ns/iter (± 223744) 23941891 ns/iter (± 112974) 1.03
css/parser/foundation_6_7_4 19216670 ns/iter (± 115628) 19942380 ns/iter (± 85664) 0.96
css/parser/tailwind_3_1_1 3722623 ns/iter (± 5813) 3670059 ns/iter (± 2238) 1.01
es/codegen/colors 731233 ns/iter (± 396390) 743415 ns/iter (± 403312) 0.98
es/codegen/large 3098860 ns/iter (± 1622547) 3101716 ns/iter (± 1620078) 1.00
es/codegen/with-parser/colors 57777 ns/iter (± 475) 58368 ns/iter (± 549) 0.99
es/codegen/with-parser/large 587390 ns/iter (± 2160) 590936 ns/iter (± 1858) 0.99
es/minify/libraries/antd 1951445163 ns/iter (± 23995371) 2061689699 ns/iter (± 30234949) 0.95
es/minify/libraries/d3 406763547 ns/iter (± 11125776) 348613192 ns/iter (± 6058495) 1.17
es/minify/libraries/echarts 1500621106 ns/iter (± 53233425) 1423076238 ns/iter (± 17994345) 1.05
es/minify/libraries/jquery 99489397 ns/iter (± 1418232) 104459522 ns/iter (± 3073439) 0.95
es/minify/libraries/lodash 124860486 ns/iter (± 2004606) 129971220 ns/iter (± 1495999) 0.96
es/minify/libraries/moment 59479080 ns/iter (± 1871280) 59174156 ns/iter (± 1346518) 1.01
es/minify/libraries/react 21371230 ns/iter (± 390482) 20800080 ns/iter (± 138286) 1.03
es/minify/libraries/terser 287972136 ns/iter (± 10699833) 269877796 ns/iter (± 5410273) 1.07
es/minify/libraries/three 495286528 ns/iter (± 8716579) 537214239 ns/iter (± 47881948) 0.92
es/minify/libraries/typescript 3676508462 ns/iter (± 68544743) 3647340241 ns/iter (± 76130108) 1.01
es/minify/libraries/victory 826448143 ns/iter (± 40008028) 773407934 ns/iter (± 45070154) 1.07
es/minify/libraries/vue 149325561 ns/iter (± 1309877) 159608280 ns/iter (± 3360406) 0.94
es/visitor/compare/clone 2411843 ns/iter (± 27929) 2449361 ns/iter (± 25533) 0.98
es/visitor/compare/visit_mut_span 2802886 ns/iter (± 19148) 2781676 ns/iter (± 25717) 1.01
es/visitor/compare/visit_mut_span_panic 2838809 ns/iter (± 18627) 2840230 ns/iter (± 4128) 1.00
es/visitor/compare/fold_span 3911254 ns/iter (± 14262) 3968927 ns/iter (± 53739) 0.99
es/visitor/compare/fold_span_panic 4054208 ns/iter (± 14591) 4126013 ns/iter (± 125989) 0.98
es/lexer/colors 15183 ns/iter (± 70) 14577 ns/iter (± 22) 1.04
es/lexer/angular 7256682 ns/iter (± 2834) 6955523 ns/iter (± 12401) 1.04
es/lexer/backbone 872997 ns/iter (± 562) 847173 ns/iter (± 320) 1.03
es/lexer/jquery 4878678 ns/iter (± 4498) 4772851 ns/iter (± 3689) 1.02
es/lexer/jquery mobile 7554523 ns/iter (± 16714) 7363627 ns/iter (± 32240) 1.03
es/lexer/mootools 3810413 ns/iter (± 4480) 3744768 ns/iter (± 1638) 1.02
es/lexer/underscore 724396 ns/iter (± 1394) 704026 ns/iter (± 855) 1.03
es/lexer/three 22923263 ns/iter (± 9025) 22359801 ns/iter (± 26796) 1.03
es/lexer/yui 4387316 ns/iter (± 3358) 4287515 ns/iter (± 2146) 1.02
es/parser/colors 34071 ns/iter (± 89) 33526 ns/iter (± 71) 1.02
es/parser/angular 17262241 ns/iter (± 217681) 18876960 ns/iter (± 358123) 0.91
es/parser/backbone 2461755 ns/iter (± 17590) 2449653 ns/iter (± 8616) 1.00
es/parser/jquery 13901000 ns/iter (± 773091) 13480904 ns/iter (± 74062) 1.03
es/parser/jquery mobile 22924696 ns/iter (± 491248) 20838603 ns/iter (± 299020) 1.10
es/parser/mootools 10253488 ns/iter (± 159718) 10106795 ns/iter (± 27328) 1.01
es/parser/underscore 2080864 ns/iter (± 8441) 2105748 ns/iter (± 15834) 0.99
es/parser/three 63989499 ns/iter (± 600947) 66869975 ns/iter (± 303585) 0.96
es/parser/yui 10287620 ns/iter (± 114539) 10469749 ns/iter (± 117113) 0.98
es/preset-env/usage/builtin_type 152275 ns/iter (± 33452) 152703 ns/iter (± 33562) 1.00
es/preset-env/usage/property 29420 ns/iter (± 85) 29719 ns/iter (± 116) 0.99
es/resolver/typescript 144374674 ns/iter (± 4843010) 152544662 ns/iter (± 5236321) 0.95
es/fixer/typescript 101819979 ns/iter (± 301696) 109010309 ns/iter (± 1395956) 0.93
es/hygiene/typescript 241535095 ns/iter (± 3090829) 243684196 ns/iter (± 4302475) 0.99
es/resolver_with_hygiene/typescript 468538407 ns/iter (± 4318553) 484889339 ns/iter (± 7292606) 0.97
es/visitor/base-perf/module_clone 86019 ns/iter (± 383) 85429 ns/iter (± 550) 1.01
es/visitor/base-perf/fold_empty 94831 ns/iter (± 394) 94569 ns/iter (± 409) 1.00
es/visitor/base-perf/fold_noop_impl_all 95342 ns/iter (± 260) 94721 ns/iter (± 316) 1.01
es/visitor/base-perf/fold_noop_impl_vec 95231 ns/iter (± 512) 95063 ns/iter (± 354) 1.00
es/visitor/base-perf/boxing_boxed_clone 60 ns/iter (± 0) 60 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 45 ns/iter (± 0) 44 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_boxed 107 ns/iter (± 0) 110 ns/iter (± 0) 0.97
es/visitor/base-perf/boxing_unboxed 82 ns/iter (± 0) 82 ns/iter (± 0) 1
es/visitor/base-perf/visit_contains_this 3526 ns/iter (± 69) 3545 ns/iter (± 85) 0.99
es/base/parallel/resolver/typescript 8041811794 ns/iter (± 626494825) 7703272047 ns/iter (± 560278471) 1.04
es/base/parallel/hygiene/typescript 2792714549 ns/iter (± 32562897) 2858919350 ns/iter (± 42135501) 0.98
misc/visitors/time-complexity/time 5 113 ns/iter (± 0) 104 ns/iter (± 0) 1.09
misc/visitors/time-complexity/time 10 368 ns/iter (± 0) 339 ns/iter (± 3) 1.09
misc/visitors/time-complexity/time 15 765 ns/iter (± 0) 631 ns/iter (± 12) 1.21
misc/visitors/time-complexity/time 20 1447 ns/iter (± 11) 1169 ns/iter (± 33) 1.24
misc/visitors/time-complexity/time 40 7480 ns/iter (± 18) 6020 ns/iter (± 3) 1.24
misc/visitors/time-complexity/time 60 18940 ns/iter (± 94) 15392 ns/iter (± 78) 1.23
es/full-target/es2016 271447 ns/iter (± 307) 270985 ns/iter (± 396) 1.00
es/full-target/es2017 260677 ns/iter (± 731) 261207 ns/iter (± 491) 1.00
es/full-target/es2018 249846 ns/iter (± 481) 250335 ns/iter (± 452) 1.00
es2020_nullish_coalescing 99049 ns/iter (± 327) 97666 ns/iter (± 547) 1.01
es2020_optional_chaining 114787 ns/iter (± 377) 115342 ns/iter (± 380) 1.00
es2022_class_properties 157071 ns/iter (± 816) 156589 ns/iter (± 397) 1.00
es2018_object_rest_spread 100839 ns/iter (± 356) 100085 ns/iter (± 325) 1.01
es2019_optional_catch_binding 88735 ns/iter (± 303) 88659 ns/iter (± 232) 1.00
es2017_async_to_generator 89776 ns/iter (± 183) 89094 ns/iter (± 246) 1.01
es2016_exponentiation 96308 ns/iter (± 216) 95958 ns/iter (± 271) 1.00
es2015_arrow 99330 ns/iter (± 303) 98985 ns/iter (± 206) 1.00
es2015_block_scoped_fn 97101 ns/iter (± 189) 96759 ns/iter (± 237) 1.00
es2015_block_scoping 185340 ns/iter (± 228) 184000 ns/iter (± 498) 1.01

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.