phase29aq(p4): add trim stdlib coverage
Some checks are pending
fast-smoke / fast (push) Waiting to run
Some checks are pending
fast-smoke / fast (push) Waiting to run
This commit is contained in:
3
apps/tests/phase29aq_string_trim_end_min.hako
Normal file
3
apps/tests/phase29aq_string_trim_end_min.hako
Normal file
@ -0,0 +1,3 @@
|
||||
using "apps/lib/json_native/utils/string.hako" as StringUtils
|
||||
|
||||
print(StringUtils.trim_end(" ab "))
|
||||
3
apps/tests/phase29aq_string_trim_start_min.hako
Normal file
3
apps/tests/phase29aq_string_trim_start_min.hako
Normal file
@ -0,0 +1,3 @@
|
||||
using "apps/lib/json_native/utils/string.hako" as StringUtils
|
||||
|
||||
print(StringUtils.trim_start(" ab "))
|
||||
@ -3,7 +3,7 @@
|
||||
## Current Focus
|
||||
|
||||
- Phase: `docs/development/current/main/phases/phase-29aq/README.md`
|
||||
- Next: Phase 29aq P4 (stdlib split/scan derivatives)
|
||||
- Next: Phase 29aq P5 (stdlib split/scan derivatives)
|
||||
|
||||
## Gate (SSOT)
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ Scope: 「次にやる候補」を短く列挙するメモ。入口は `docs/dev
|
||||
|
||||
## Active
|
||||
|
||||
- Phase 29aq: `docs/development/current/main/phases/phase-29aq/README.md` (Next: P4 split/scan derivatives)
|
||||
- Phase 29aq: `docs/development/current/main/phases/phase-29aq/README.md` (Next: P5 split/scan derivatives)
|
||||
- JoinIR regression gate SSOT: `docs/development/current/main/phases/phase-29ae/README.md`
|
||||
- CorePlan hardening (docs-first): `docs/development/current/main/phases/phase-29al/README.md`
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@ Related:
|
||||
## 1.1 Current (active)
|
||||
|
||||
- Active phase: `docs/development/current/main/phases/phase-29aq/README.md`
|
||||
- Next step: Phase 29aq P4 (stdlib split/scan derivatives)
|
||||
- Next step: Phase 29aq P5 (stdlib split/scan derivatives)
|
||||
|
||||
## 2. すでに固めた SSOT(再発防止の土台)
|
||||
|
||||
|
||||
@ -22,6 +22,8 @@ Goal: JoinIR の最小回帰セットを SSOT として固定する。
|
||||
- SplitScan (stdlib split, VM): `phase29aq_string_split_min_vm`
|
||||
- SplitScan (stdlib split char, VM): `phase29aq_string_split_char_min_vm`
|
||||
- SplitScan (stdlib split string, VM): `phase29aq_string_split_string_min_vm`
|
||||
- Pattern2 (stdlib trim_start, VM): `phase29aq_string_trim_start_min_vm`
|
||||
- Pattern2 (stdlib trim_end, VM): `phase29aq_string_trim_end_min_vm`
|
||||
- Pattern1 (stdlib to_upper, VM): `phase29aq_string_to_upper_min_vm`
|
||||
- Pattern5 (Break, VM): `phase286_pattern5_break_vm`
|
||||
- Pattern5 (strict shadow, VM): `phase29ao_pattern5_strict_shadow_vm`
|
||||
|
||||
@ -0,0 +1,38 @@
|
||||
---
|
||||
Status: Done
|
||||
Scope: stdlib trim coverage (trim_start, trim_end)
|
||||
Related:
|
||||
- docs/development/current/main/phases/phase-29aq/README.md
|
||||
- docs/development/current/main/phases/phase-29ae/README.md
|
||||
---
|
||||
|
||||
# Phase 29aq P4: stdlib trim coverage (trim_start, trim_end)
|
||||
|
||||
Goal: add fixtures/smokes for trim_start and trim_end, wired into the stdlib
|
||||
pack and the JoinIR regression gate. No behavior or logging changes.
|
||||
|
||||
## Subsets (SSOT)
|
||||
|
||||
- trim_start: leading whitespace trimmed, trailing preserved
|
||||
- trim_end: trailing whitespace trimmed, leading preserved
|
||||
|
||||
Inputs exclude empty-only strings; no new Pattern2 logic is introduced.
|
||||
|
||||
## Fixtures / smokes
|
||||
|
||||
- `apps/tests/phase29aq_string_trim_start_min.hako`
|
||||
- `apps/tests/phase29aq_string_trim_end_min.hako`
|
||||
- `tools/smokes/v2/profiles/integration/joinir/phase29aq_string_trim_start_min_vm.sh`
|
||||
- `tools/smokes/v2/profiles/integration/joinir/phase29aq_string_trim_end_min_vm.sh`
|
||||
|
||||
## Gate wiring
|
||||
|
||||
- Add both smokes to `tools/smokes/v2/profiles/integration/joinir/phase29aq_stdlib_pack_vm.sh`.
|
||||
- Ensure `phase29ae_regression_pack_vm.sh` runs the stdlib pack.
|
||||
- Update `docs/development/current/main/phases/phase-29ae/README.md`.
|
||||
|
||||
## Verification
|
||||
|
||||
- `cargo build --release`
|
||||
- `./tools/smokes/v2/run.sh --profile quick`
|
||||
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
|
||||
@ -59,7 +59,8 @@ Plan/Composer subsets (or mark unsupported) before adding new subsets.
|
||||
- P1: Add stdlib subsets in priority order (index_of/last_index_of → parse_integer → split).
|
||||
- P2: Add stdlib subsets (index_of_string → to_upper).
|
||||
- P3: Expand split subsets (char/string delimiters; empty segments excluded by input).
|
||||
- P4: Expand stdlib trim coverage (trim_start/trim_end fixtures).
|
||||
|
||||
## Next (planned)
|
||||
|
||||
- P4: Expand split/scan derivatives (candidate: starts_with/ends_with).
|
||||
- P5: Expand split/scan derivatives (candidate: starts_with/ends_with).
|
||||
|
||||
@ -24,6 +24,8 @@ run_filter "string_parse_integer_vm" "phase29aq_string_parse_integer_min_vm" ||
|
||||
run_filter "string_split_vm" "phase29aq_string_split_min_vm" || exit 1
|
||||
run_filter "string_split_char_vm" "phase29aq_string_split_char_min_vm" || exit 1
|
||||
run_filter "string_split_string_vm" "phase29aq_string_split_string_min_vm" || exit 1
|
||||
run_filter "string_trim_start_vm" "phase29aq_string_trim_start_min_vm" || exit 1
|
||||
run_filter "string_trim_end_vm" "phase29aq_string_trim_end_min_vm" || exit 1
|
||||
run_filter "string_to_upper_vm" "phase29aq_string_to_upper_min_vm" || exit 1
|
||||
|
||||
log_success "phase29aq_stdlib_pack_vm: all stdlib subset filters passed"
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
# phase29aq_string_trim_end_min_vm.sh - StringUtils.trim_end via plan/composer (VM)
|
||||
|
||||
source "$(dirname "$0")/../../../lib/test_runner.sh"
|
||||
require_env || exit 2
|
||||
|
||||
FIXTURE="$NYASH_ROOT/apps/tests/phase29aq_string_trim_end_min.hako"
|
||||
export NYASH_ALLOW_USING_FILE=1
|
||||
|
||||
output=$(run_nyash_vm "$FIXTURE")
|
||||
|
||||
expected=$(cat << 'TXT'
|
||||
ab
|
||||
TXT
|
||||
)
|
||||
|
||||
compare_outputs "$expected" "$output" "phase29aq_string_trim_end_min_vm" || exit 1
|
||||
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
# phase29aq_string_trim_start_min_vm.sh - StringUtils.trim_start via plan/composer (VM)
|
||||
|
||||
source "$(dirname "$0")/../../../lib/test_runner.sh"
|
||||
require_env || exit 2
|
||||
|
||||
FIXTURE="$NYASH_ROOT/apps/tests/phase29aq_string_trim_start_min.hako"
|
||||
export NYASH_ALLOW_USING_FILE=1
|
||||
|
||||
output=$(run_nyash_vm "$FIXTURE")
|
||||
|
||||
expected=$(cat << 'TXT'
|
||||
ab
|
||||
TXT
|
||||
)
|
||||
|
||||
compare_outputs "$expected" "$output" "phase29aq_string_trim_start_min_vm" || exit 1
|
||||
Reference in New Issue
Block a user