Skip to content

tests/: merge by topic, [test(description=, timeout=)], the shape gate - #4489

Merged
borisbat merged 4 commits into
masterfrom
bbatkin/tests-together
Nov 8, 2026
Merged

borisbat merged 4 commits into
masterfrom
bbatkin/tests-together

Conversation

@borisbat

@borisbat borisbat commented Nov 8, 2026 •

Copy link
Copy Markdown
Collaborator

Behavior change: tests/ holds 1068 files instead of 1929 - a new [test] goes into an existing topic file or the folder's uncategorized.das, never a new file.

Why. A dastest run pays per file, and 48% of the 1929 suite files held one [test]: the fixed cost was paid 1929 times for 6983 tests. The index in tests/README.md had rotted to 822 rows.

What changes.

  • [test(description = "...")] states the claim; dastest prints it under FAIL, and utils/internal/test-audit generates tests/README.md from it.
  • [test(timeout = 1200)] marks a slow test and lifts its file's time caps; the value is the suite default, never a measured one.
  • [test(standalone = "why")] names why a file cannot share a program.
  • tests/REVIEW.das enforces the shape: three or more tests per category file, one uncategorized.das per folder, a cap of 100, a description on every test.
  • Every folder under tests/ merges by topic; tests/REVIEW.md and the tdd-auditor carry the placement rule.

Observable behavior.

  • 1929 run files -> 1068; 6983 [test] -> 7017.
  • A failing test prints its description under FAIL.
  • A hand edit of tests/README.md fails check_tests_index.

Where to look. dastest/suite.das, dastest/file_census.das, tests/REVIEW.das; the risky spots are merged files whose sources carried different options.

Validation, claims, ledger

Validation

  • #nightly - the whole-tree lint, the sanitizer cells, the full AOT suite and the backend sweeps run per-PR CI does not; the nightly's step times against master's 11/7 nightly and the two merged PRs' nightlies are the measurement this PR exists for.
  • dastest/tests ran on Windows only; Linux sees them in the nightly.
  • The preflight lint gate cannot run its host rail on this diff locally: it passes the changed-file list on one command line and 2125 files exceed the Windows limit. The same lint ran by directory over every changed tree, on the host and under both mirror rails (dasMetal off, dasVulkan off): zero findings in changed files; the 15 that remain sit in the untouched dastest/suite_result.das, where STYLE020's rewrite does not compile.
  • Full interpreter sweep of tests/: 15634 tests, 15615 passed, 0 failed, 19 skipped (module-gated and hardware-gated skips, same as before).
  • test_aot_subset (tests/language under AOT): 2011 tests, 2011 passed. The preflight tests-aot, tests-jit, tests-cpp and docs lanes are green; utils-tests prints every suite green and reds only on MSBuild's error : text matching of the refusal tests' own output, as on master.
  • tests/REVIEW.das now requires dastest/file_census, so that module joined the AOT corpus (tests/aot/CMakeLists.txt); modules/dasLLVM/daslib/llvm_jit_plan.das is in the emitter pin's raw-byte hash set, so its one-line test-path comment rename bumps LLVM_JIT_EMITTER_HASH in llvm_jit_run.das with no codegen version change.
  • Every REVIEW.das gate green (utils/internal/review-md/all.das: 30 gates, 0 red) after LINT002 got its own fixture - tests/lint/test_lint002_block_var_used.das had been standing in for it by name.
  • The first nightly's fastmath cell failed on tests/type_lattice/test_conformance.das: master's generated test_float2/3/4.das carried a hand-added HOST_FAST_MATH skip that the generator never emitted, so regenerating dropped it. The generator now emits the guard for the float vector specs; every other HOST_FAST_MATH guard in tests/ (ten files) survived the merge unchanged.
  • The second nightly's windows extended_checks failed check_tests_index: that runner checks out with autocrlf=true, so tests/README.md read back with CRLF against the generator's LF text. --verify now compares with line endings stripped; the tool's self-test covers a CRLF index.
  • Metal and CUDA tests only skip on this box; their descriptions were written from the test bodies and arm labels, not from a run.
  • Five no_aot JIT tests merged into tests/jit_tests/jit_artifacts.das share the LLVM-AOT corpus exclusion that dll_cache.das alone carried before, so they leave that object corpus.

Claims - stated, not tested

  • Descriptions in the largest files (tests/linq/test_linq_fold_ast*.das, test_linq_from_decs*.das, tests/stbimage, tests/dasSQLITE/parity_check*.das, tests/macro_boost, tests/escape_analysis) were written from test names, arm labels and assertion text, not from a full read of every body; a wrong claim reads wrong under a FAIL line and in the index, it changes no verdict.
  • Which tests are "slow" (and so carry timeout = 1200) was judged from the bodies - a test that builds, spawns a child or waits on a peer - not from a timing run on CI hardware.

Not done

  • modules/dasImgui/tests and modules/dasLLAMA/tests keep their shape; each gets its own PR after this one lands.
  • tests/README.md is committed and verified; the generated index is not yet linked from the docs site.

Copilot AI balanced review requested due to automatic review settings November 8, 2026 03:21
The [test] macro accepts description, timeout and standalone and rejects any
other argument or a wrong type. dastest prints the description under a test's
FAIL line and reports a test that finishes past its declared timeout; in
isolated mode a declared timeout raises its own file's deadline by the same
amount. dastest/file_census.das is the one textual census of a test tree: run
files by dastest's rule, tests, arms, descriptions, headers and fence
signatures, with an option's value part of the fence.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@borisbat
borisbat force-pushed the bbatkin/tests-together branch from 4453584 to 312b111 Compare November 8, 2026 03:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note

Copilot was unable to complete this review at the selected tier due to model policy or plan restrictions.

🔵 Needs a closer look

The change reorganizes the tests/ tree and introduces/enforces new test metadata semantics and tooling across many fixtures, making correctness hinge on full CI and cross-platform validation that cannot be confidently verified from the provided diff excerpt.

No open issues 🎉

What changed in this PR

This pull request restructures the tests/ tree to reduce per-file runner overhead by consolidating tests by topic, while standardizing per-test metadata so failures and the generated tests/README.md index include explicit test “claims”. It also updates supporting review gates, documentation references, and CI wiring to enforce and consume the new test-tree shape.

Changes:

  • Consolidate many tests/** files into topic-based suites (with per-folder uncategorized.das conventions) to reduce test runner per-file costs.
  • Standardize/expand [test(description=..., timeout=..., standalone=...)] metadata and generate/verify tests/README.md from descriptions.
  • Update review gates, docs, and CI/CMake references to align with the new merged test layout and enforcement tooling.
File Status
utils/​watchdog/​README.md Reviewed
utils/​internal/​flatten-fuzz/​README.md Reviewed
utils/​internal/​das-herd/​CONTAINER_INIT_PLAN.md Reviewed
tutorials/​macros/​18_with_boost.das Reviewed
tests/​with_boost/​failed_with_two_tables.das Reviewed
tests/​with_boost/​failed_with_nested_array.das Reviewed
tests/​with_boost/​failed_with_local.das Reviewed
tests/​with_boost/​failed_with_function_call.das Reviewed
tests/​with_boost/​failed_with_array_literal.das Reviewed
tests/​with_boost/​failed_with_arity_mismatch.das Reviewed
tests/​verify/​failed_test_verify_completion.das Reviewed
tests/​unsafe/​failed_unsafe_reference.das Reviewed
tests/​typer_errors/​failed_with_module_unsafe.das Reviewed
tests/​typer_errors/​failed_with_module_unknown.das Reviewed
tests/​typer_errors/​failed_thread_loop_void.das Reviewed
tests/​typer_errors/​failed_local_reference_to_temporary_select.das Reviewed
tests/​typer_errors/​failed_lattice_table_key.das Reviewed
tests/​typer_errors/​failed_invalid_empty_name_structure.das Reviewed
tests/​typer_errors/​failed_invalid_empty_name_struct_field.das Reviewed
tests/​typer_errors/​failed_invalid_empty_name_function.das Reviewed
tests/​typer_errors/​failed_invalid_empty_name_expr_var.das Reviewed
tests/​typer_errors/​failed_invalid_empty_name_expr_call.das Reviewed
tests/​typer_errors/​failed_distinct_table_key.das Reviewed
tests/​typer_errors/​failed_distinct_private.das Reviewed
tests/​typer_errors/​failed_distinct_mismatch.das Reviewed
tests/​typer_errors/​failed_distinct_decl.das Reviewed
tests/​typer_errors/​failed_distinct_ctor.das Reviewed
tests/​typemacro/​test_shift_after_typemacro_gen1.das Reviewed
tests/​typemacro/​failed_tsi_not_template_parent.das Reviewed
tests/​typemacro/​failed_tsi_nonconst.das Reviewed
tests/​typemacro/​failed_tsi_gate_not_bool.das Reviewed
tests/​typemacro/​failed_tsi_field_collision.das Reviewed
tests/​typemacro/​failed_tsi_bad_gate.das Reviewed
tests/​typemacro/​failed_tsi_bad_call.das Reviewed
tests/​type_traits/​test_traits.das Reviewed
tests/​template/​uncategorized.das Reviewed
tests/​template/​test_template.das Reviewed
tests/​template/​failed_qmacro_template_class_untyped_name.das Reviewed
tests/​template/​failed_qmacro_method_untyped_name.das Reviewed
tests/​strings/​failed_temporary_strings.das Reviewed
tests/​strings/​delete_strings_persistent.das Reviewed
tests/​promote/​failed_int_overflow_uint8.das Reviewed
tests/​promote/​failed_int_overflow_uint16.das Reviewed
tests/​promote/​failed_int_overflow_int8.das Reviewed
tests/​promote/​failed_int_overflow_int8_neg.das Reviewed
tests/​promote/​failed_int_overflow_bitfield8.das Reviewed
tests/​promote/​failed_int_negative_uint8.das Reviewed
tests/​promote/​failed_in_variant_field.das Reviewed
tests/​promote/​failed_in_variant_field_clone.das Reviewed
tests/​promote/​failed_in_struct_field_decl.das Reviewed
tests/​promote/​failed_in_struct_ctor.das Reviewed
tests/​promote/​failed_in_return.das Reviewed
tests/​promote/​failed_in_op2.das Reviewed
tests/​promote/​failed_in_global_init.das Reviewed
tests/​promote/​failed_in_copy.das Reviewed
tests/​promote/​failed_in_clone.das Reviewed
tests/​promote/​failed_in_array_literal.das Reviewed
tests/​promote/​failed_hex_overflow_int8.das Reviewed
tests/​module_cache/​test_global_offset_late_require.das Reviewed
tests/​math/​math_pack_unpack.das Reviewed
tests/​match/​failed_match_view_in_array.das Reviewed
tests/​match/​failed_match_view_does_not_compile.das Reviewed
tests/​match/​failed_match_variant_call_arity.das Reviewed
tests/​match/​failed_match_variant_bare_case_missing.das Reviewed
tests/​match/​failed_match_value_no_catch_all.das Reviewed
tests/​match/​failed_match_unreachable_struct_arm.das Reviewed
tests/​match/​failed_match_unreachable_exhausted_variant.das Reviewed
tests/​match/​failed_match_unreachable_duplicate.das Reviewed
tests/​match/​failed_match_unreachable_alternative.das Reviewed
tests/​match/​failed_match_unreachable_after_complete_guards.das Reviewed
tests/​match/​failed_match_unreachable_after_catch_all.das Reviewed
tests/​match/​failed_match_unreachable_after_alternative_calls.das Reviewed
tests/​match/​failed_match_unknown_tag.das Reviewed
tests/​match/​failed_match_unknown_struct_field.das Reviewed
tests/​match/​failed_match_unknown_alternative_call.das Reviewed
tests/​match/​failed_match_table_set_value.das Reviewed
tests/​match/​failed_match_table_not_table.das Reviewed
tests/​match/​failed_match_string_not_string.das Reviewed
tests/​match/​failed_match_several_values_arity.das Reviewed
tests/​match/​failed_match_range_type.das Reviewed
tests/​match/​failed_match_range_overlap.das Reviewed
tests/​match/​failed_match_range_covered.das Reviewed
tests/​match/​failed_match_not_exhaustive_variant_call.das Reviewed
tests/​match/​failed_match_not_exhaustive_struct_fields.das Reviewed
tests/​match/​failed_match_not_exhaustive_pair.das Reviewed
tests/​match/​failed_match_not_exhaustive_many.das Reviewed
tests/​match/​failed_match_not_exhaustive_enum.das Reviewed
tests/​match/​failed_match_mixed_arms.das Reviewed
tests/​match/​failed_match_float_guards_not_exhaustive.das Reviewed
tests/​match/​failed_match_computed_pattern.das Reviewed
tests/​match/​failed_match_call_guards_not_exhaustive.das Reviewed
tests/​match/​failed_match_body_shadows_binding.das Reviewed
tests/​match/​failed_match_binding_is_a_copy.das Reviewed
tests/​match/​failed_match_assignment_body.das Reviewed
tests/​match/​failed_match_alternative_names_differ.das Reviewed
tests/​macro_call/​test_find_call_macro_null.das Reviewed
tests/​macro_call/​test_add_new_call_macro_from_apply.das Reviewed
tests/​lint/​stale_fixtures/​_fixture_lint_skip.das Reviewed
tests/​lint/​_fixture_style048_hints.das Reviewed
tests/​lint/​_fixture_lint031_writer.das Reviewed
tests/​lint/​_assume_block_lint013_fixture.das Reviewed
tests/​linq/​failed_test_linq_join.das Reviewed
tests/​language/​with_statement.das Reviewed
tests/​language/​with_module_unsafe_policy.das Reviewed
tests/​language/​unused_arguments_annotation.das Reviewed
tests/​language/​typeinfo.das Reviewed
tests/​language/​typefunction.das Reviewed
tests/​language/​tuple_expansion.das Reviewed
tests/​language/​to_table.das Reviewed
tests/​language/​test_frame_position_nogc.das Reviewed
tests/​language/​test_char_escapes_gen1.das Reviewed
tests/​language/​table_value_lookup_no_collision.das Reviewed
tests/​language/​string_clone_init_temporary.das Reviewed
tests/​language/​stdvec_r2v.das Reviewed
tests/​language/​rpipe.das Reviewed
tests/​language/​require_as_fixture.das Reviewed
tests/​language/​private_property_setter.das Reviewed
tests/​language/​optional_require_fixture_skipme.das Reviewed
tests/​language/​optional_require_fixture_private.das Reviewed
tests/​language/​optional_require_fixture_pctskip.das Reviewed
tests/​language/​optional_require_fixture_pctguard.das Reviewed
tests/​language/​optional_require_fixture_pathguard.das Reviewed
tests/​language/​optional_require_fixture_hidden.das Reviewed
tests/​language/​option_type.das Reviewed
tests/​language/​null_pointer_arith_fold.das Reviewed
tests/​language/​no_default_initializer.das Reviewed
tests/​language/​mksmart_zero.das Reviewed
tests/​language/​memzero.das Reviewed
tests/​language/​map_to_a.das Reviewed
tests/​language/​macro_patch_per_instance.das Reviewed
tests/​language/​line_info.das Reviewed
tests/​language/​lambda_capture.das Reviewed
tests/​language/​invoke_cmres_global_alias.das Reviewed
tests/​language/​invalid_type_ref_in_table_value.das Reviewed
tests/​language/​invalid_table_type_mix.das Reviewed
tests/​language/​invalid_structure_field_type_void.das Reviewed
tests/​language/​invalid_structure_field_type_ref.das Reviewed
tests/​language/​invalid_return_type_mix.das Reviewed
tests/​language/​invalid_infer_return_type.das Reviewed
tests/​language/​invalid_index_type.das Reviewed
tests/​language/​invalid_escape_sequence.das Reviewed
tests/​language/​invalid_array_type_mix.das Reviewed
tests/​language/​invalid_argument_count_mix.das Reviewed
tests/​language/​inline_discarded_pure_result.das Reviewed
tests/​language/​infer_alias_argument.das Reviewed
tests/​language/​fully_qualified_generic_name.das Reviewed
tests/​language/​for_single_element.das Reviewed
tests/​language/​for_const_array.das Reviewed
tests/​language/​failed_variant_bare_case_value.das Reviewed
tests/​language/​failed_variant_bare_case_access.das Reviewed
tests/​language/​failed_unused_argument.das Reviewed
tests/​language/​failed_typeinfo_offsetof_missing_field.das Reviewed
tests/​language/​failed_type_not_found.das Reviewed
tests/​language/​failed_type_loop.das Reviewed
tests/​language/​failed_tuple_shorthand_return_mismatch.das Reviewed
tests/​language/​failed_tuple_shorthand_mismatch.das Reviewed
tests/​language/​failed_tuple_dim_self_reference.das Reviewed
tests/​language/​failed_table_lookup_collision.das Reviewed
tests/​language/​failed_table_literal_float16_key.das Reviewed
tests/​language/​failed_super_twice.das Reviewed
tests/​language/​failed_super_skip_intermediate.das Reviewed
tests/​language/​failed_super_on_branch.das Reviewed
tests/​language/​failed_super_in_try_only_recover.das Reviewed
tests/​language/​failed_super_args_mismatch.das Reviewed
tests/​language/​failed_structure_field_already_declared.das Reviewed
tests/​language/​failed_structure_already_defined.das Reviewed
tests/​language/​failed_struct_alias_typemacro_loop.das Reviewed
tests/​language/​failed_struct_alias_loop.das Reviewed
tests/​language/​failed_static_assert_in_infer.das Reviewed
tests/​language/​failed_sizeof_reference.das Reviewed
tests/​language/​failed_run_annotation_side_effects.das Reviewed
tests/​language/​failed_return_void_expression.das Reviewed
tests/​language/​failed_return_in_try.das Reviewed
tests/​language/​failed_return_in_recover.das Reviewed
tests/​language/​failed_result_type_by_ref_too_big.das Reviewed
tests/​language/​failed_require_as.das Reviewed
tests/​language/​failed_reader_macro_not_found.das Reviewed
tests/​language/​failed_pointer_math_unsized_pointee.das Reviewed
tests/​language/​failed_not_all_paths_return_a_value.das Reviewed
tests/​language/​failed_nodiscard.das Reviewed
tests/​language/​failed_no_super.das Reviewed
tests/​language/​failed_no_init.das Reviewed
tests/​language/​failed_named_call_bare.das Reviewed
tests/​language/​failed_mismatching_parentheses.das Reviewed
tests/​language/​failed_mismatching_curly_bracers.das Reviewed
tests/​language/​failed_macro_added_function_must_infer.das Reviewed
tests/​language/​failed_inline_label_ternary.das Reviewed
tests/​language/​failed_inline_label_let.das Reviewed
tests/​language/​failed_inline_hoist_clone.das Reviewed
tests/​language/​failed_inline_arg_clone.das Reviewed
tests/​language/​failed_goto_out_of_block.das Reviewed
tests/​language/​failed_global_variable_order.das Reviewed
tests/​language/​failed_global_variable_order_itself.das Reviewed
tests/​language/​failed_global_variable_init_loop.das Reviewed
tests/​language/​failed_global_variable_already_declared.das Reviewed
tests/​language/​failed_global_init_type_mismatch.das Reviewed
tests/​language/​failed_generator_for_uninferred_rename.das Reviewed
tests/​language/​failed_generator_dim.das Reviewed
tests/​language/​failed_function_not_found_ambiguous.das Reviewed
tests/​language/​failed_function_argument_already_declared.das Reviewed
tests/​language/​failed_function_already_declared.das Reviewed
tests/​language/​failed_finalize_super_twice.das Reviewed
tests/​language/​failed_finalize_super_on_branch.das Reviewed
tests/​language/​failed_failed_local_classes.das Reviewed
tests/​language/​failed_failed_containers.das Reviewed
tests/​language/​failed_duplicate_keys.das Reviewed
tests/​language/​failed_container_init_off_resize.das Reviewed
tests/​language/​failed_const_init_type_folding.das Reviewed
tests/​language/​failed_const_and_block_folding.das Reviewed
tests/​language/​failed_condition_must_be_bool.das Reviewed
tests/​language/​failed_comprehension_source_in_generator.das Reviewed
tests/​language/​failed_comment_eof.das Reviewed
tests/​language/​failed_class_method_non_static.das Reviewed
tests/​language/​failed_block.das Reviewed
tests/​language/​failed_assume_loop.das Reviewed
tests/​language/​failed_assert_over_effectful_field.das Reviewed
tests/​language/​failed_any_argument_const_ref.das Reviewed
tests/​language/​failed_annotation_int64_positive.das Reviewed
tests/​language/​failed_annotation_int64_positive_gen1.das Reviewed
tests/​language/​failed_annotation_int64_overflow.das Reviewed
tests/​language/​failed_annotation_int64_overflow_gen1.das Reviewed
tests/​language/​failed_aliasing.das Reviewed
tests/​language/​failed_aka.das Reviewed
tests/​language/​each_std_vector.das Reviewed
tests/​language/​dummy.das Reviewed
tests/​language/​deref_ptr_fun.das Reviewed
tests/​language/​containers.das Reviewed
tests/​language/​cant_write_generator_for_variable.das Reviewed
tests/​language/​cant_unsafe_assign_operator_init.das Reviewed
tests/​language/​cant_scratch_outside_unsafe.das Reviewed
tests/​language/​cant_rpipe_into_operator.das Reviewed
tests/​language/​cant_override_sealed.das Reviewed
tests/​language/​cant_index.das Reviewed
tests/​language/​cant_have_local_variable.das Reviewed
tests/​language/​cant_get_field.das Reviewed
tests/​language/​cant_derive_from_sealed_class.das Reviewed
tests/​language/​cant_dereference_mix.das Reviewed
tests/​language/​cant_delete_super_self.das Reviewed
tests/​language/​cant_addr_cast_unsafe.das Reviewed
tests/​language/​cant_addr_cast_non_pointer.das Reviewed
tests/​language/​bool_condition.das Reviewed
tests/​language/​block.das Reviewed
tests/​language/​assume.das Reviewed
tests/​language/​ascend_ctor.das Reviewed
tests/​language/​aot_enum_named_like_module.das Reviewed
tests/​language/​annotation_signed_numbers_gen1.das Reviewed
tests/​language/​add_property_ext_const.das Reviewed
tests/​language/​_require_as_fixture.das Reviewed
tests/​language/​_optional_require_fixture_private.das Reviewed
tests/​language/​_optional_require_fixture_pctskip.das Reviewed
tests/​language/​_optional_require_fixture_pctguard.das Reviewed
tests/​language/​_optional_require_fixture_pathguard.das Reviewed
tests/​language/​_optional_require_fixture_hidden.das Reviewed
tests/​language/​_never_inline_module.das Reviewed
tests/​language/​_inline_counter_helper.das Reviewed
tests/​language/​_arch_annotation_doc.md Reviewed
tests/​json/​cant_sscan_vector_value.das Reviewed
tests/​json/​cant_sscan_table_value.das Reviewed
tests/​json/​cant_sscan_struct_value.das Reviewed
tests/​json/​cant_sscan_struct_result.das Reviewed
tests/​json/​cant_sscan_scalar_value.das Reviewed
tests/​json/​cant_sscan_named_destination.das Reviewed
tests/​json/​cant_sscan_fixed_array_value.das Reviewed
tests/​json/​cant_sscan_fallback_value.das Reviewed
tests/​json/​cant_sscan_const_struct.das Reviewed
tests/​json/​cant_sscan_const_scalar.das Reviewed
tests/​json/​cant_sscan_conditional_value.das Reviewed
tests/​json/​cant_sscan_array_value.das Reviewed
tests/​jobque/​test_thread_loop.das Reviewed
tests/​jit_tests/​uninferred_local_typedef.das Reviewed
tests/​jit_tests/​uncategorized_solid_context.das Reviewed
tests/​jit_tests/​string_builder.das Reviewed
tests/​jit_tests/​return_in_try_recover.das Reviewed
tests/​jit_tests/​interop_call.das Reviewed
tests/​jit_tests/​handle_list_substituted.das Reviewed
tests/​jit_tests/​global_variables_solid.das Reviewed
tests/​jit_tests/​extern_call.das Reviewed
tests/​jit_tests/​default_fn_ptr.das Reviewed
tests/​interfaces/​failed_test_missing_method.das Reviewed
tests/​interfaces/​failed_test_missing_inherited.das Reviewed
tests/​flatten/​test_flatten_swizzle.das Reviewed
tests/​flatten/​test_flatten_opt.das Reviewed
tests/​flatten/​test_flatten_dot.das Reviewed
tests/​flatten/​no_aot/​test_flatten_inline_accumulator.das Reviewed
tests/​fixed_array/​failed_zero_dim.das Reviewed
tests/​fixed_array/​failed_void_array.das Reviewed
tests/​fixed_array/​failed_typedecl_dim.das Reviewed
tests/​fixed_array/​failed_nonconst_dim.das Reviewed
tests/​fixed_array/​failed_new_fixed_array.das Reviewed
tests/​fixed_array/​failed_copy_noncopyable.das Reviewed
tests/​fio/​_fixture_echo_args.das Reviewed
tests/​decs/​test_stages_extra.das Reviewed
tests/​decs/​failed_test_empty_template.das Reviewed
tests/​decs/​failed_component_value_too_big.das Reviewed
tests/​decs/​empty_query.das Reviewed
tests/​decs/​_test_stages_extra.das Reviewed
tests/​dastest/​_tests_shape_fixture/​uncategorized_rtti.das Reviewed
tests/​dastest/​_tests_shape_fixture/​uncategorized_persistent_heap.das Reviewed
tests/​dastest/​_tests_shape_fixture/​uncategorized_persistent_heap_2.das Reviewed
tests/​dastest/​_tests_shape_fixture/​uncategorized_heap.das Reviewed
tests/​dastest/​_tests_shape_fixture/​uncategorized_3.das Reviewed
tests/​dastest/​_tests_shape_fixture/​plain.das Reviewed
tests/​dastest/​_tests_shape_fixture/​noprefix.das Reviewed
tests/​dastest/​_tests_shape_fixture/​lonely.das Reviewed
tests/​dastest/​_tests_shape_fixture/​failed_nohead.das Reviewed
tests/​dastest/​_tests_shape_fixture/​alone.das Reviewed
tests/​dastest/​_tests_shape_fixture_plain/​uncategorized.das Reviewed
tests/​dasSQLITE/​migrate_85_struct_convert_user_overload.das Reviewed
tests/​dasSQLITE/​migrate_64_try_form_returns_err.das Reviewed
tests/​dasSQLITE/​migrate_45_baseline_then_migrate.das Reviewed
tests/​dasSQLITE/​migrate_28_no_vacuum_no_analyze_default.das Reviewed
tests/​dasSQLITE/​migrate_25_analyze.das Reviewed
tests/​dasSQLITE/​migrate_22_add_column_dup_runtime.das Reviewed
tests/​dasSQLITE/​migrate_20_create_index_basic.das Reviewed
tests/​dasSQLITE/​migrate_19_add_column_blob.das Reviewed
tests/​dasSQLITE/​migrate_18_add_column_json.das Reviewed
tests/​dasSQLITE/​migrate_17_add_column_renamed.das Reviewed
tests/​dasSQLITE/​migrate_14_add_column_optional.das Reviewed
tests/​dasSQLITE/​migrate_13_data_preserved.das Reviewed
tests/​dasSQLITE/​migrate_12_description_persists.das Reviewed
tests/​dasSQLITE/​migrate_10_strict_forward.das Reviewed
tests/​dasSQLITE/​migrate_09_steady_state.das Reviewed
tests/​dasSQLITE/​failed_unbindable_bind.das Reviewed
tests/​dasSQLITE/​failed_sql_view_schema.das Reviewed
tests/​dasSQLITE/​failed_sql_upsert.das Reviewed
tests/​dasSQLITE/​failed_sql_update_delete.das Reviewed
tests/​dasSQLITE/​failed_sql_pragma_vacuum.das Reviewed
tests/​dasSQLITE/​failed_sql_pragma_untyped_runner.das Reviewed
tests/​dasSQLITE/​failed_sql_migration_dup_version.das Reviewed
tests/​dasSQLITE/​failed_sql_fts5_unindexed_match.das Reviewed
tests/​dasSQLITE/​failed_sql_composite_reference.das Reviewed
tests/​dasSQLITE/​failed_schema_from_table_not_in_file.das Reviewed
tests/​dasSQLITE/​failed_schema_from_pk_disagreement.das Reviewed
tests/​dasSQLITE/​failed_schema_from_nullable_strict.das Reviewed
tests/​dasSQLITE/​failed_schema_from_nullable_loose.das Reviewed
tests/​dasSQLITE/​failed_schema_from_file_missing.das Reviewed
tests/​dasSQLITE/​failed_schema_from_field_not_in_db.das Reviewed
tests/​dasSQLITE/​failed_register_function.das Reviewed
tests/​dasSQLITE/​failed_each_sql_terminals.das Reviewed
tests/​dasSQLITE/​failed_create_index_unknown_field.das Reviewed
tests/​dasSQLITE/​failed_create_index_empty_fields.das Reviewed
tests/​dasSQLITE/​failed_add_column_unknown_field.das Reviewed
tests/​dasSQLITE/​failed_add_column_unique_rejected.das Reviewed
tests/​dasSQLITE/​failed_add_column_pk_rejected.das Reviewed
tests/​dasSQLITE/​failed_add_column_no_sql_table.das Reviewed
tests/​daslib/​cant_only_nttp_fixture.das Reviewed
tests/​daslib/​cant_cmp_unknown_field.das Reviewed
tests/​daslib/​cant_cmp_on_class.das Reviewed
tests/​daslib/​cant_cmp_no_fields.das Reviewed
tests/​daslib/​cant_cmp_listed_twice.das Reviewed
tests/​daslib/​cant_cmp_by_no_placeholder.das Reviewed
tests/​daslib/​cant_cmp_by_no_keys.das Reviewed
tests/​daslib/​cant_cmp_bad_direction.das Reviewed
tests/​daslib/​_only_nttp_fixture_good.das Reviewed
tests/​daslib/​_eval_single_expression_fixture.das Reviewed
tests/​dasHV/​test_file_stream_binding.das Reviewed
tests/​dasHV/​no_aot/​failed_upgrade_request_escape.das Reviewed
tests/​dasHV/​no_aot/​failed_checked_response_escape.das Reviewed
tests/​cuda/​REVIEW.md Reviewed
tests/​constexpr/​failed_test_constexpr.das Reviewed
tests/​class_boost/​failed_explicit_const_non_static.das Reviewed
tests/​bare_block/​failed_piped_no_default.das Reviewed
tests/​bare_block/​failed_piped_no_block_param.das Reviewed
tests/​bare_block/​failed_piped_field.das Reviewed
tests/​bare_block/​failed_piped_block_mismatch.das Reviewed
tests/​bare_block/​failed_piped_ambiguous.das Reviewed
tests/​ast/​failed_sticky_macro_error.das Reviewed
tests/​ast/​failed_short_iterator_arrays.das Reviewed
tests/​ast/​failed_null_let_entry.das Reviewed
tests/​ast/​failed_null_function_result.das Reviewed
tests/​ast/​failed_null_for_body.das Reviewed
tests/​assert_once/​test_assert_once.das Reviewed
tests/​aot/​uncategorized_optimize_false.das Reviewed
tests/​aot/​test_ref_make_local.das Reviewed
tests/​aot/​test_lambda_handled_result.das Reviewed
tests/​aot/​test_empty_tuple_aot.das Reviewed
tests/​aot/​test_assume_string_builder.das Reviewed
tests/​algorithm/​sets.das Reviewed
modules/​dasSQLITE/​README.md Reviewed
modules/​dasMetal/​REVIEW.md Reviewed
modules/​dasMetal/​REVIEW.das Reviewed
modules/​dasLLVM/​DEBUGGING.md Reviewed
modules/​dasLLVM/​daslib/​llvm_jit_run.das Reviewed
modules/​dasGLTF/​README.md Reviewed
include/​daScript/​simulate/​ARCHITECTURE.md Reviewed
dastest/​tests/​test_timeout.das Reviewed
dastest/​tests/​_fixture_unknown_annotation_arg.das Reviewed
dastest/​tests/​_fixture_bad_annotation_kind.das Reviewed
dastest/​tests/​_fixture_bad_annotation_arg.das Reviewed
dastest/​log.das Reviewed
CMakeCommon.txt Reviewed
ci/​CMakeLists.txt Reviewed

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings November 8, 2026 03:30
@borisbat
borisbat force-pushed the bbatkin/tests-together branch from 312b111 to 8aca9af Compare November 8, 2026 03:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note

Copilot was unable to complete this review at the selected tier due to model policy or plan restrictions.

🔵 Needs a closer look

The change is a large, cross-cutting reorganization of the test suite with newly enforced metadata/shape gates and timeout semantics whose correctness depends on end-to-end CI/lint/AOT and downstream tooling validation that cannot be fully verified from the available diff evidence alone.

No open issues 🎉

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings November 8, 2026 03:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note

Copilot was unable to complete this review at the selected tier due to model policy or plan restrictions.

🔵 Needs a closer look

The change combines a large test corpus reshuffle with new/changed CI gates, making it impractical to confirm from the diff excerpts alone that merged-file option/fence semantics and downstream CI workflows remain correct without full runs and targeted sanity checks.

No open issues 🎉

Review effort: Balanced

@borisbat
borisbat force-pushed the bbatkin/tests-together branch from 8aca9af to 627eed6 Compare November 8, 2026 04:59
Copilot AI balanced review requested due to automatic review settings November 8, 2026 04:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note

Copilot was unable to complete this review at the selected tier due to model policy or plan restrictions.

🔵 Needs a closer look

The change is a sweeping tests/ refactor with merges/renames and new shape-enforcement rules where subtle suite-discovery and option/standalone boundary issues may exist, and the provided evidence only samples a subset without full CI/nightly confirmation.

No open issues 🎉

Review effort: Balanced

borisbat and others added 3 commits November 7, 2026 22:13
tests/REVIEW.das holds the tree to the shape: three or more tests per category
file, one uncategorized.das per folder, fenced uncategorized_<signature>.das
files, continuations past a cap of 100, a description on every test, a header on
every compile-fail fixture, no bare script. utils/internal/test-audit audits how
the tree packs and generates tests/README.md from the descriptions;
check_tests_index verifies it in CI. The hand prose of the README moves to
tests/ARCHITECTURE.md; tests/REVIEW.md, the skills and the tdd-auditor carry the
placement rule, and a body-identical move is not a test edit.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1929 run files become 1068: tests move into topic files or their folder's
uncategorized file, files that cannot share a program say why in standalone,
waits carry timeouts, lone benchmarks and bare scripts gain a test, helper
modules take the fixture prefix. The two generators that write test files write
one described file per rail, the AOT lists and the documents that named moved
files follow, and tests/README.md is regenerated.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The tests/lint file whose name stood in for the LINT002 fixture merged into its
topic file; the dastest self-tests take expression bodies and a reason on each
unsafe block.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@borisbat
borisbat force-pushed the bbatkin/tests-together branch from 627eed6 to 4645997 Compare November 8, 2026 06:13
Copilot AI balanced review requested due to automatic review settings November 8, 2026 06:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note

Copilot was unable to complete this review at the selected tier due to model policy or plan restrictions.

🔵 Needs a closer look

The change substantially restructures the test suite and alters test execution/gating semantics in ways that can subtly affect CI behavior across the full matrix, so an end-to-end human validation run is needed beyond static review.

No open issues 🎉

Review effort: Balanced

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants