Skip to content

Commit

Permalink
test(es/helpers): Unify code path for testing external helpers (#5010)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Jun 21, 2022
1 parent 7a6e6e1 commit 125549b
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 19 deletions.
6 changes: 0 additions & 6 deletions .github/workflows/cargo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -376,12 +376,6 @@ jobs:
run: |
jest -v && mocha --version
- name: Configure helpers
shell: bash
run: |
(cd packages/swc-helpers && yarn && yarn build)
yarn add --dev ./packages/swc-helpers
- name: Configure execution cache
shell: bash
run: |
Expand Down
35 changes: 26 additions & 9 deletions crates/swc/tests/exec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use std::{
env,
fs::{create_dir_all, rename},
path::{Component, Path, PathBuf},
process::Command,
sync::Arc,
};

Expand All @@ -15,7 +16,7 @@ use swc_common::{errors::ColorConfig, SourceMap};
use swc_ecma_ast::EsVersion;
use swc_ecma_parser::{EsConfig, Syntax, TsConfig};
use swc_ecma_testing::{exec_node_js, JsExecOptions};
use testing::assert_eq;
use testing::{assert_eq, find_executable};
use tracing::{span, Level};

trait IterExt<T>: Sized + IntoIterator<Item = T>
Expand Down Expand Up @@ -55,26 +56,42 @@ fn init_helpers() -> Arc<PathBuf> {

let helper_dir = project_root.join("packages").join("swc-helpers");

if env::var("CI").as_deref() == Ok("1") {
return Arc::new(helper_dir);
}

let yarn = find_executable("yarn").expect("failed to find yarn");
let npm = find_executable("npm").expect("failed to find yarn");
{
let mut cmd = std::process::Command::new("yarn");
cmd.current_dir(&helper_dir).arg("upgrade").arg("@swc/core");
let mut cmd = if cfg!(target_os = "windows") {
let mut c = Command::new("cmd");
c.arg("/C").arg(&yarn);
c
} else {
Command::new(&yarn)
};
cmd.current_dir(&helper_dir);
let status = cmd.status().expect("failed to update swc core");
assert!(status.success());
}

{
let mut cmd = std::process::Command::new("yarn");
let mut cmd = if cfg!(target_os = "windows") {
let mut c = Command::new("cmd");
c.arg("/C").arg(&yarn);
c
} else {
Command::new(&yarn)
};
cmd.current_dir(&helper_dir).arg("build");
let status = cmd.status().expect("failed to compile helper package");
assert!(status.success());
}

{
let mut cmd = std::process::Command::new("npm");
let mut cmd = if cfg!(target_os = "windows") {
let mut c = Command::new("cmd");
c.arg("/C").arg(&npm);
c
} else {
Command::new(&npm)
};
cmd.current_dir(&project_root)
.arg("install")
.arg("--no-save")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use strict";
var _interop_require_wildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
var _interop_require_wildcard = require("../../../../../../../../../packages/swc-helpers/src/_interop_require_wildcard.mjs").default;
(async function() {
const { displayA } = await Promise.resolve().then(function() {
return _interop_require_wildcard(require("../packages/a/src/index"));
Expand Down
2 changes: 1 addition & 1 deletion crates/swc/tests/fixture/issues-2xxx/2050/output/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"use strict";
var _interop_require_default = require("@swc/helpers/lib/_interop_require_default.js").default;
var _interop_require_default = require("../../../../../../../packages/swc-helpers/src/_interop_require_default.mjs").default;
var _a = _interop_require_default(require("./subfolder/A"));
console.log(_a.default);
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"use strict";
var _interop_require_default = require("@swc/helpers/lib/_interop_require_default.js").default;
var _interop_require_default = require("../../../../../../../../packages/swc-helpers/src/_interop_require_default.mjs").default;
var _handlebars = _interop_require_default(require("handlebars"));
console.log(_handlebars.default);
2 changes: 1 addition & 1 deletion crates/swc_html_minifier/tests/fixture.rs
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ fn test_minify_document_fragment(input: PathBuf) {
context_element_tag_name = tag_name;
}
} else {
context_element_tag_name = &context_element;
context_element_tag_name = context_element;
}

let context_element = Element {
Expand Down

1 comment on commit 125549b

@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: 125549b Previous: 4a422a0 Ratio
es/full/minify/libraries/antd 1704654690 ns/iter (± 40849438) 1708789869 ns/iter (± 66706653) 1.00
es/full/minify/libraries/d3 428188470 ns/iter (± 34487944) 441122774 ns/iter (± 25164750) 0.97
es/full/minify/libraries/echarts 1652355661 ns/iter (± 57978736) 1737623395 ns/iter (± 65310755) 0.95
es/full/minify/libraries/jquery 104978970 ns/iter (± 11077339) 98497566 ns/iter (± 10143867) 1.07
es/full/minify/libraries/lodash 135844982 ns/iter (± 15879698) 132109572 ns/iter (± 5948853) 1.03
es/full/minify/libraries/moment 56669939 ns/iter (± 6886952) 58031772 ns/iter (± 4007249) 0.98
es/full/minify/libraries/react 17809170 ns/iter (± 888629) 18962161 ns/iter (± 1806726) 0.94
es/full/minify/libraries/terser 616908302 ns/iter (± 18093616) 627341239 ns/iter (± 43144083) 0.98
es/full/minify/libraries/three 552321048 ns/iter (± 39261032) 565764889 ns/iter (± 12966934) 0.98
es/full/minify/libraries/typescript 3517234572 ns/iter (± 115614210) 3796407181 ns/iter (± 362431071) 0.93
es/full/minify/libraries/victory 730804468 ns/iter (± 34181081) 724103006 ns/iter (± 28035784) 1.01
es/full/minify/libraries/vue 146488155 ns/iter (± 12192236) 134714491 ns/iter (± 9146621) 1.09
es/full/codegen/es3 32443 ns/iter (± 1197) 31853 ns/iter (± 2639) 1.02
es/full/codegen/es5 32294 ns/iter (± 2073) 31761 ns/iter (± 851) 1.02
es/full/codegen/es2015 32504 ns/iter (± 1595) 31900 ns/iter (± 1460) 1.02
es/full/codegen/es2016 32385 ns/iter (± 1843) 31767 ns/iter (± 931) 1.02
es/full/codegen/es2017 32365 ns/iter (± 2122) 31739 ns/iter (± 3059) 1.02
es/full/codegen/es2018 32333 ns/iter (± 2463) 31847 ns/iter (± 657) 1.02
es/full/codegen/es2019 32325 ns/iter (± 1650) 31787 ns/iter (± 886) 1.02
es/full/codegen/es2020 32241 ns/iter (± 387) 31828 ns/iter (± 601) 1.01
es/full/all/es3 204313333 ns/iter (± 16169477) 190140710 ns/iter (± 10072930) 1.07
es/full/all/es5 189973083 ns/iter (± 16133226) 170226469 ns/iter (± 8790592) 1.12
es/full/all/es2015 158752543 ns/iter (± 14999576) 140274924 ns/iter (± 5373236) 1.13
es/full/all/es2016 156427165 ns/iter (± 11234911) 138269077 ns/iter (± 5982364) 1.13
es/full/all/es2017 152368296 ns/iter (± 9989403) 141955626 ns/iter (± 11337551) 1.07
es/full/all/es2018 152673895 ns/iter (± 10653145) 140671711 ns/iter (± 6276477) 1.09
es/full/all/es2019 151826185 ns/iter (± 10191093) 140889805 ns/iter (± 5607908) 1.08
es/full/all/es2020 150275107 ns/iter (± 11548777) 134256345 ns/iter (± 4870264) 1.12
es/full/parser 730571 ns/iter (± 66899) 705360 ns/iter (± 18211) 1.04
es/full/base/fixer 29763 ns/iter (± 2341) 29151 ns/iter (± 1023) 1.02
es/full/base/resolver_and_hygiene 91403 ns/iter (± 27708) 87705 ns/iter (± 3015) 1.04
serialization of ast node 210 ns/iter (± 18) 206 ns/iter (± 2) 1.02
serialization of serde 218 ns/iter (± 10) 232 ns/iter (± 1) 0.94

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

Please sign in to comment.