CI: one test binary per crate, nextest, line tables only (#1989)

* Build: line tables only in dev, no debug info for dependencies

* Tests: one integration-test binary per crate

Each crate's tests/*.rs becomes a module of tests/it/main.rs. Files that
install process-wide state (the file io hooks, user aliases, SAVETIME and
SAVEFILEPATH, user linetype and pattern files, registered fonts) stay their
own test binaries.

* xtask ci: nextest, tests without examples, one wasm check call
This commit is contained in:
aiongg
2026-10-23 13:34:26 -04:00
committed by GitHub
parent 9d8f16c825
commit 9cf115e808
277 changed files with 317 additions and 37 deletions
+2
View File
@@ -69,9 +69,11 @@ type_complexity = "allow"
[profile.dev.package."*"]
opt-level = 2
debug = false
[profile.dev]
opt-level = 1
debug = "line-tables-only"
[profile.release]
opt-level = 3
+6
View File
@@ -0,0 +1,6 @@
mod cli;
mod drafting_spacing;
mod help;
mod mcp_connect;
mod skipped_records;
mod undrawn_entities;
+2
View File
@@ -0,0 +1,2 @@
mod lin_pat_parse;
mod sub_segment_alias;
@@ -29,7 +29,7 @@ fn session() -> (Session, Handle) {
/// As [`session`], with the fixture's text changed by `edit` first.
fn session_with(edit: impl Fn(String) -> String) -> (Session, Handle) {
let grip = "0 BLOCKLINEARGRIP\n5 68\n330 61\n100 AcDbEvalExpr\n90 9\n98 33\n99 232\n100 AcDbBlockElement\n300 End Grip\n98 33\n99 232\n1071 0\n";
let src = include_str!("../../io/tests/data/dynblock_door.txt")
let src = include_str!("../../../io/tests/data/dynblock_door.txt")
.replace("\r\n", "\n")
.replace("170 4\n91 0\n91 0\n", "170 4\n91 8\n91 9\n")
.replace("1030 0\n93 0\n170 0\n171 0\n100 AcDbBlockVisibilityParameter", "1030 0\n93 10\n170 0\n171 0\n100 AcDbBlockVisibilityParameter")
@@ -2,7 +2,6 @@
//! leave exactly the expected entities, layers and printed text. The corpus lives in its own
//! repository; point `CADCRAFT_LISP_CORPUS` at its `cases` directory (or the repository) to run
//! it. Without it the test only says so.
#![allow(clippy::unwrap_used, clippy::expect_used, clippy::panic)]
use std::path::{Path, PathBuf};
+143
View File
@@ -0,0 +1,143 @@
mod angle_prompts;
mod angle_settings;
mod annotate_options;
mod annotative;
mod arc_ctrl_direction;
mod array_commands;
mod assoc_array;
mod attdisp_attsync;
mod attedit_prompts;
mod attrib_modes;
mod attrib_props;
mod attribute_tools;
mod block_keep;
mod block_redefine;
mod break_closed_polyline;
mod break_join_locked_layers;
mod break_keeps_z;
mod burst;
mod constraint_geometry;
mod constraint_infer;
mod count;
mod dash_block;
mod data_extraction;
mod dim_baseline_spacing;
mod dim_chain;
mod dim_commands;
mod dim_explode_text;
mod dim_properties;
mod dim_radial_inside;
mod dim_radial_outside;
mod dim_vars;
mod dimtedit_prompts;
mod drafting_spacing;
mod draw_prompts;
mod draworder;
mod dyn_input;
mod dynamic_block_data;
mod dynamic_grips;
mod fillet_chamfer;
mod fix_holds_grips;
mod followups_626;
mod grip_dim_input;
mod grip_options;
mod grip_selection;
mod group_selection;
mod groups;
mod hatch_assoc;
mod hatch_dialog_helpers;
mod hatch_numeric_validation;
mod hatch_options;
mod helix;
mod inquiry_keywords;
mod inquiry_z;
mod insert_prompts;
mod isometric;
mod join_close;
mod json_param_validation;
mod layer_cmdline;
mod layer_merge_delete;
mod layoff_repeat;
mod layout_prompts;
#[allow(clippy::unwrap_used, clippy::expect_used, clippy::panic)]
mod lisp_corpus;
mod malformed_handles;
mod matchprop;
mod measure_distance_snapping;
mod metric_linetypes;
mod mleader_content;
mod mleader_remember;
mod mline;
mod mocoro;
mod modify_curves;
mod mtext_columns;
mod mtext_options;
mod multiline_attributes;
mod named_views;
mod non_finite_edits;
mod offset_closed_spline;
mod offset_ellipse_side;
mod offset_move;
mod options_profile;
mod overkill;
mod parallel_display_list;
mod pedit_splinedit;
mod pick_text;
mod pickdrag;
mod pline_arc_xline_options;
mod plot_styles;
mod point_modifiers;
mod post_command_passes;
mod prompt_keywords;
mod props_bad_lineweight;
mod props_insert_scale_attribs;
mod purge_mlinestyles;
mod purge_prompts;
mod qdim;
mod qdim_modes;
mod query_entities;
mod quickcalc;
mod recent_commands;
mod rectang_ortho;
mod refedit;
mod region;
mod rename_cmdline;
mod rotate_reference;
mod select_keywords;
mod select_similar;
mod select_underscore_keywords;
mod selection_cycling;
mod selection_modes;
mod setvar_coverage;
mod shapes;
mod snap_annotations;
mod snap_blocks;
mod snap_curves;
mod snap_intersections_aperture;
mod snap_nearest;
mod snap_overrides;
mod snap_tracking;
mod snaps_more;
mod space_is_enter;
mod spline_degree;
mod spline_options;
mod stretch;
mod stretch_select;
mod table_formulas;
mod table_styles;
mod temp_tracking;
mod text_commands;
mod text_left_justify;
mod tolerance;
mod transparent;
mod trim_closed_polyline;
mod trim_extend_options;
mod undo_count;
mod undo_layout_tab;
mod viewport_clip;
mod vplayer_prompts;
mod vports;
mod xdata_follows_entity;
mod zoom_keywords;
mod zoom_viewport;
mod zoom_window_ortho;

Some files were not shown because too many files have changed in this diff Show More