tests for big files (#675)
* shit; Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * cleanup Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * u[dates; Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * still ignore the big one Signed-off-by: Jess Frazelle <github@jessfraz.com> * Add big kitt SVG to benchmarks --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: Adam Chalmers <adam.s.chalmers@gmail.com>
This commit is contained in:
1
.github/workflows/cargo-test.yml
vendored
1
.github/workflows/cargo-test.yml
vendored
@ -58,4 +58,5 @@ jobs:
|
|||||||
cargo nextest run --workspace --no-fail-fast -P ci
|
cargo nextest run --workspace --no-fail-fast -P ci
|
||||||
env:
|
env:
|
||||||
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN}}
|
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN}}
|
||||||
|
RUST_MIN_STACK: 10485760000
|
||||||
|
|
||||||
|
@ -1,12 +1,22 @@
|
|||||||
use criterion::{criterion_group, criterion_main, Criterion};
|
use criterion::{criterion_group, criterion_main, Criterion};
|
||||||
|
|
||||||
pub fn criterion_benchmark(c: &mut Criterion) {
|
pub fn criterion_benchmark(c: &mut Criterion) {
|
||||||
c.bench_function("parse + lex cube program", |b| b.iter(lex_and_parse_cube));
|
c.bench_function("parse + lex cube", |b| b.iter(|| lex_and_parse(CUBE_PROGRAM)));
|
||||||
|
c.bench_function("parse + lex big kitt", |b| {
|
||||||
|
b.iter(|| lex_and_parse(include_str!("../../tests/executor/inputs/kittycad_svg.kcl")))
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
fn lex_and_parse_cube() {
|
fn lex_and_parse(program: &str) {
|
||||||
let program = r#"
|
let tokens = kcl_lib::tokeniser::lexer(program);
|
||||||
fn cube = (pos, scale) => {
|
let parser = kcl_lib::parser::Parser::new(tokens);
|
||||||
|
parser.ast().unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
criterion_group!(benches, criterion_benchmark);
|
||||||
|
criterion_main!(benches);
|
||||||
|
|
||||||
|
const CUBE_PROGRAM: &str = r#"fn cube = (pos, scale) => {
|
||||||
const sg = startSketchAt(pos)
|
const sg = startSketchAt(pos)
|
||||||
|> line([0, scale], %)
|
|> line([0, scale], %)
|
||||||
|> line([scale, 0], %)
|
|> line([scale, 0], %)
|
||||||
@ -18,10 +28,3 @@ fn cube = (pos, scale) => {
|
|||||||
const b1 = cube([0,0], 10)
|
const b1 = cube([0,0], 10)
|
||||||
const pt1 = b1[0]
|
const pt1 = b1[0]
|
||||||
show(b1)"#;
|
show(b1)"#;
|
||||||
let tokens = kcl_lib::tokeniser::lexer(program);
|
|
||||||
let parser = kcl_lib::parser::Parser::new(tokens);
|
|
||||||
parser.ast().unwrap();
|
|
||||||
}
|
|
||||||
|
|
||||||
criterion_group!(benches, criterion_benchmark);
|
|
||||||
criterion_main!(benches);
|
|
||||||
|
1
src/wasm-lib/kcl/clippy.toml
Normal file
1
src/wasm-lib/kcl/clippy.toml
Normal file
@ -0,0 +1 @@
|
|||||||
|
enum-variant-size-threshold = 24
|
@ -879,11 +879,6 @@ impl CallExpression {
|
|||||||
|
|
||||||
match &self.function {
|
match &self.function {
|
||||||
Function::StdLib { func } => {
|
Function::StdLib { func } => {
|
||||||
/* let source_range: SourceRange = self.into();
|
|
||||||
println!(
|
|
||||||
"Calling stdlib function: {}, source_range: {:?}, args: {:?}",
|
|
||||||
fn_name, source_range, fn_args
|
|
||||||
);*/
|
|
||||||
// Attempt to call the function.
|
// Attempt to call the function.
|
||||||
let args = crate::std::Args::new(fn_args, self.into(), engine.clone());
|
let args = crate::std::Args::new(fn_args, self.into(), engine.clone());
|
||||||
let result = func.std_lib_fn()(args).await?;
|
let result = func.std_lib_fn()(args).await?;
|
||||||
|
@ -88,7 +88,11 @@ impl EngineConnection {
|
|||||||
let ws_stream = tokio_tungstenite::WebSocketStream::from_raw_socket(
|
let ws_stream = tokio_tungstenite::WebSocketStream::from_raw_socket(
|
||||||
ws,
|
ws,
|
||||||
tokio_tungstenite::tungstenite::protocol::Role::Client,
|
tokio_tungstenite::tungstenite::protocol::Role::Client,
|
||||||
None,
|
Some(tokio_tungstenite::tungstenite::protocol::WebSocketConfig {
|
||||||
|
write_buffer_size: 1024 * 128,
|
||||||
|
max_write_buffer_size: 1024 * 256,
|
||||||
|
..Default::default()
|
||||||
|
}),
|
||||||
)
|
)
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
|
310
src/wasm-lib/tests/executor/inputs/kittycad_svg.kcl
Normal file
310
src/wasm-lib/tests/executor/inputs/kittycad_svg.kcl
Normal file
@ -0,0 +1,310 @@
|
|||||||
|
const svg = startSketchAt([0, 0])
|
||||||
|
|
||||||
|
|> lineTo([2.52, -26.04], %) // MoveAbsolute
|
||||||
|
|> lineTo([2.52, -25.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([0.84, -25.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([0.84, -24.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([0, -24.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([0, -6.72], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([0.84, -6.72], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([0.84, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([1.68, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([1.68, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([2.52, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([2.52, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([3.36, -4.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([17.64, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([17.64, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([18.48, -4.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([18.48, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([19.32, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([19.32, -5.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([20.16, -5.88], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([20.16, -6.72], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([21, -6.72], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([21, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([20.16, -24.36], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([20.16, -25.2], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([18.48, -25.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([18.48, -26.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([15.96, -26.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.96, -26.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([16.8, -26.88], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([16.8, -28.56], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([11.76, -28.56], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([11.76, -26.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([12.6, -26.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([12.6, -26.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([8.4, -26.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([8.4, -26.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([9.24, -26.88], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([9.24, -28.56], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([4.2, -28.56], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -26.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([5.04, -26.88], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([5.04, -26.04], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([0.839996, -20.58], %) // MoveRelative
|
||||||
|
|> lineTo([0.839996, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([2.52, -24.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([2.52, -25.2], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([18.48, -25.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([18.48, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([20.16, -24.36], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([20.16, -20.58], %) // VerticalLineAbsolute
|
||||||
|
// StopAbsolute
|
||||||
|
|> lineTo([7.56, -24.36], %) // MoveAbsolute
|
||||||
|
|> lineTo([7.56, -22.68], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([13.44, -22.68], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([13.44, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([1.68, -22.68], %) // MoveRelative
|
||||||
|
|> lineTo([1.68, -21.84], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([5.88, -21.84], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([5.88, -22.68], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([3.36, -24.36], %) // MoveRelative
|
||||||
|
|> lineTo([3.36, -23.52], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([5.88, -23.52], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([5.88, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([15.12, -22.68], %) // MoveRelative
|
||||||
|
|> lineTo([15.12, -21.84], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([15.959999999999999, -21.84], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.959999999999999, -22.68], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([16.8, -22.68], %) // MoveRelative
|
||||||
|
|> lineTo([16.8, -21.84], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([17.64, -21.84], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([17.64, -22.68], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([18.48, -22.68], %) // MoveRelative
|
||||||
|
|> lineTo([18.48, -21.84], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([19.32, -21.84], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([19.32, -22.68], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([15.12, -24.36], %) // MoveRelative
|
||||||
|
|> lineTo([15.12, -23.52], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([17.64, -23.52], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([17.64, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([18.48, -5.88], %) // MoveAbsolute
|
||||||
|
|> lineTo([18.48, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([17.64, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([17.64, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([3.36, -4.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([2.52, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([2.52, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([1.68, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([1.68, -6.72], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([0.839996, -6.72], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([0.839996, -8.4], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([20.16, -8.4], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([20.16, -6.72], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([19.32, -6.72], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([19.32, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|
||||||
|
|> lineTo([20.16, -7.56], %) // MoveAbsolute
|
||||||
|
|> lineTo([0.839996, -7.56], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([0.839996, -19.32], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([20.16, -19.32], %) // HorizontalLineAbsolute
|
||||||
|
|
||||||
|
|> lineTo([3.36, -10.08], %) // MoveAbsolute
|
||||||
|
|> lineTo([3.36, -9.24001], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([17.64, -9.24001], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([17.64, -10.08], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([18.48, -10.08], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([18.48, -16.8], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([17.64, -16.8], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([17.64, -17.64], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([3.36, -17.64], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -16.8], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([2.52, -16.8], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([2.52, -10.080000000000002], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([13.44, -10.92], %) // MoveRelative
|
||||||
|
|> lineTo([13.44, -10.08], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([15.12, -10.08], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.12, -13.44], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([14.28, -13.44], %) // HorizontalLineRelative
|
||||||
|
|
||||||
|
|> lineTo([9.24, -13.44], %) // MoveRelative
|
||||||
|
|> lineTo([11.76, -13.44], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([11.76, -14.28], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([10.92, -14.28], %) // HorizontalLineRelative here
|
||||||
|
|> lineTo([10.92, -15.959999999999999], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([13.44, -15.959999999999999], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([13.44, -15.12], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([14.28, -15.12], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([14.28, -15.959999999999999], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([13.44, -15.959999999999999], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([13.44, -16.8], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([7.56, -16.8], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -15.96], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([6.72, -15.96], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([6.72, -15.120000000000001], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([7.56, -15.120000000000001], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([7.56, -15.96], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([10.08, -15.96], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([10.08, -14.28], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([9.24, -14.28], %) // HorizontalLineAbsolute
|
||||||
|
|
||||||
|
|> lineTo([7.56, -12.6], %) // MoveAbsolute
|
||||||
|
|> lineTo([7.56, -11.76], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.04, -11.76], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.04, -12.6], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([4.2, -12.6], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -11.76], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([5.04, -11.76], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([5.04, -10.92], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([7.5600000000000005, -10.92], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([7.5600000000000005, -11.76], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([8.4, -11.76], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([8.4, -12.6], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([3.36, -5.88], %) // MoveAbsolute
|
||||||
|
|> lineTo([3.36, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([4.2, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.04, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.04, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.88, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.88, -0.83999599], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([6.72, -0.83999599], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([6.72, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([7.56, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([8.4, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([8.4, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([9.24, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([9.24, -5.88], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([17.64, -5.04], %) // MoveAbsolute
|
||||||
|
|> lineTo([17.64, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([11.76, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([11.76, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([12.6, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([12.6, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([13.44, -3.36], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([13.44, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([14.28, -1.68], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([14.28, -0.83999599], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.12, -0.83999599], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.12, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.959999999999999, -1.68], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.959999999999999, -3.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([16.8, -3.36], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([16.8, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([13.44, -1.68], %) // MoveAbsolute
|
||||||
|
|> lineTo([13.44, -0], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.959999999999999, -0], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.959999999999999, -1.68], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([16.8, -1.68], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([16.8, -3.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([17.64, -3.36], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([17.64, -4.62], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([16.8, -4.62], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([16.8, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.96, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([15.96, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.12, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([15.12, -0.83999999], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([14.28, -0.83999999], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([14.28, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([13.44, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([13.44, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([12.6, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([12.6, -4.62], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([11.76, -4.62], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([11.76, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([12.6, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([12.6, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|
||||||
|
|> lineTo([5.04, -1.68], %) // MoveAbsolute
|
||||||
|
|> lineTo([5.04, -0], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([7.56, -0], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([8.4, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([8.4, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([9.24, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([9.24, -4.62], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([8.4, -4.62], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([8.4, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([7.56, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([6.72, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([6.72, -0.83999999], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.88, -0.83999999], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.88, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.04, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.04, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([4.2, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -4.62], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([3.36, -4.62], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([4.2, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|
||||||
|
|> lineTo([13.44, -5.88], %) // MoveAbsolute
|
||||||
|
|> lineTo([13.44, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([14.28, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([14.28, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.12, -4.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.12, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([15.959999999999999, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.959999999999999, -5.88], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([5.88, -5.04], %) // MoveAbsolute
|
||||||
|
|> lineTo([5.88, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([6.72, -4.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([6.72, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([7.56, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.04, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.04, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|
||||||
|
|> lineTo([17.64, -5.88], %) // MoveAbsolute
|
||||||
|
|> lineTo([17.64, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([16.8, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([16.8, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([17.64, -4.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([17.64, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([18.48, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([18.48, -5.88], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([3.36, -5.04], %) // MoveAbsolute
|
||||||
|
|> lineTo([3.36, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([2.52, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([2.52, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([3.36, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([4.2, -4.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|
||||||
|
|> lineTo([8.4, -4.2], %) // MoveRelative
|
||||||
|
|> lineTo([9.24, -4.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([9.24, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([10.08, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([10.08, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([9.24, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([9.24, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([8.4, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|
||||||
|
|> lineTo([11.76, -4.2], %) // MoveAbsolute
|
||||||
|
|> lineTo([12.6, -4.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([12.6, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([11.76, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([11.76, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([10.92, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([10.92, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([11.76, -5.04], %) // HorizontalLineRelative
|
||||||
|
|
||||||
|
|> lineTo([14.28, -10.92], %) // MoveRelative
|
||||||
|
|> lineTo([13.44, -10.92], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([13.44, -13.44], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([14.28, -13.44], %) // HorizontalLineRelative
|
||||||
|
|> close(%);
|
||||||
|
show(svg);
|
@ -15,6 +15,7 @@ async fn execute_and_snapshot(code: &str) -> Result<image::DynamicImage> {
|
|||||||
// For file conversions we need this to be long.
|
// For file conversions we need this to be long.
|
||||||
.timeout(std::time::Duration::from_secs(600))
|
.timeout(std::time::Duration::from_secs(600))
|
||||||
.connect_timeout(std::time::Duration::from_secs(60))
|
.connect_timeout(std::time::Duration::from_secs(60))
|
||||||
|
.connection_verbose(true)
|
||||||
.tcp_keepalive(std::time::Duration::from_secs(600))
|
.tcp_keepalive(std::time::Duration::from_secs(600))
|
||||||
.http1_only();
|
.http1_only();
|
||||||
|
|
||||||
@ -174,6 +175,14 @@ async fn serial_test_execute_pipes_on_pipes() {
|
|||||||
twenty_twenty::assert_image("tests/executor/outputs/pipes_on_pipes.png", &result, 1.0);
|
twenty_twenty::assert_image("tests/executor/outputs/pipes_on_pipes.png", &result, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn serial_test_execute_kittycad_svg() {
|
||||||
|
let code = include_str!("inputs/kittycad_svg.kcl");
|
||||||
|
|
||||||
|
let result = execute_and_snapshot(code).await.unwrap();
|
||||||
|
twenty_twenty::assert_image("tests/executor/outputs/kittycad_svg.png", &result, 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread")]
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
async fn test_member_expression_sketch_group() {
|
async fn test_member_expression_sketch_group() {
|
||||||
let code = r#"fn cube = (pos, scale) => {
|
let code = r#"fn cube = (pos, scale) => {
|
||||||
|
BIN
src/wasm-lib/tests/executor/outputs/kittycad_svg.png
Normal file
BIN
src/wasm-lib/tests/executor/outputs/kittycad_svg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 90 KiB |
Reference in New Issue
Block a user