fix+test: improve test suite, fix 2 bugs found by tests
Bugs fixed in production code: - compare.sh: Python truthiness on 0.0 — `if b_val` was False for 0.0 t/s, displaying it as a dash instead of "0.0". Fixed with `is not None` checks. - compare.sh: ZeroDivisionError when computing delta % with 0.0 baseline. Test improvements (review findings): - detect.bats: kernel param tests now use real detect_kernel_param logic pattern (not a separate reimplementation). Added non-GiB-aligned RAM test, device ID without 0x prefix, empty firmware version, llama-bench detection, detect_total_physical_ram_kb tests. - benchmark_compare.bats: assert delta percentages (+20.0%, -25.0%, 0.0%), test 0.0 t/s edge case, test per-directory error messages, test config change detection with specific field assertions. - log_metrics.bats: add assert_success, --help test, timestamp format validation. Remove unused mock sysfs setup. - common.bats: fix data_dir test, remove redundant assertion, add cleanup. - test_helper.sh: remove unused FIXTURES_DIR. - Remove empty tests/fixtures/ directory. 94 tests, all passing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -52,16 +52,18 @@ setup() {
|
||||
# ── data_dir ─────────────────────────────────────────────
|
||||
|
||||
@test "data_dir: creates directory and returns path" {
|
||||
local subdir="test-bats-$$-$RANDOM"
|
||||
local dir
|
||||
dir="$(data_dir "test-tmp-$$")"
|
||||
dir="$(data_dir "$subdir")"
|
||||
[ -d "$dir" ]
|
||||
rmdir "$dir"
|
||||
rmdir "$dir" 2>/dev/null || true
|
||||
}
|
||||
|
||||
@test "data_dir: default returns data/ under project root" {
|
||||
@test "data_dir: returns path under PROJECT_ROOT/data" {
|
||||
local dir
|
||||
dir="$(data_dir ".")"
|
||||
[[ "$dir" == "$PROJECT_ROOT/data/." ]]
|
||||
dir="$(data_dir "testdir")"
|
||||
[[ "$dir" == "$PROJECT_ROOT/data/testdir" ]]
|
||||
rmdir "$dir" 2>/dev/null || true
|
||||
}
|
||||
|
||||
# ── logging functions produce output ─────────────────────
|
||||
@@ -105,7 +107,7 @@ setup() {
|
||||
unset RED GREEN YELLOW BLUE CYAN BOLD DIM RESET
|
||||
source_lib common.sh
|
||||
# When stdout is not a tty (as in bats), colors should be empty
|
||||
[ -z "$RED" ] || [ "$RED" = "" ]
|
||||
[ -z "$RED" ]
|
||||
}
|
||||
|
||||
# ── require_root ─────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user