v0.2.19 - Default test harness execution to build_static debug binary and add skip-build override flag

This commit is contained in:
Didactyl User
2026-03-25 09:35:46 -04:00
parent cf33b3b2c9
commit af3de3066b
4 changed files with 39 additions and 6 deletions

View File

@@ -54,11 +54,11 @@ Skills compose by adoption-list order (`10123`) and trigger tags carry runtime e
Didactyl will support local inference, which is very privacy preserving. Remote inference does however have it's advantages, and in those cases Didactyl supports using Bitcoin Lightning and eCash inference providers. Didactyl will support local inference, which is very privacy preserving. Remote inference does however have it's advantages, and in those cases Didactyl supports using Bitcoin Lightning and eCash inference providers.
## Current Status — v0.2.18 ## Current Status — v0.2.19
**Active build — this project is barely working. Experiment at your own risk.** **Active build — this project is barely working. Experiment at your own risk.**
> Last release update: v0.2.18Add Python test harness and harden increment/push script for git identity and SSH remote handling > Last release update: v0.2.19Default test harness execution to build_static debug binary and add skip-build override flag
- Connects to configured relays with auto-reconnect and relay state transition logging - Connects to configured relays with auto-reconnect and relay state transition logging
- Publishes configured startup events per relay as each relay becomes connected - Publishes configured startup events per relay as each relay becomes connected

View File

@@ -12,8 +12,8 @@
// Using DIDACTYL_ prefix to avoid conflicts with nostr_core_lib VERSION macros // Using DIDACTYL_ prefix to avoid conflicts with nostr_core_lib VERSION macros
#define DIDACTYL_VERSION_MAJOR 0 #define DIDACTYL_VERSION_MAJOR 0
#define DIDACTYL_VERSION_MINOR 2 #define DIDACTYL_VERSION_MINOR 2
#define DIDACTYL_VERSION_PATCH 18 #define DIDACTYL_VERSION_PATCH 19
#define DIDACTYL_VERSION "v0.2.18" #define DIDACTYL_VERSION "v0.2.19"
// Agent metadata // Agent metadata
#define DIDACTYL_NAME "Didactyl" #define DIDACTYL_NAME "Didactyl"

View File

@@ -3,6 +3,7 @@ from __future__ import annotations
import argparse import argparse
import datetime as dt import datetime as dt
import subprocess
import sys import sys
from pathlib import Path from pathlib import Path
@@ -20,7 +21,7 @@ from tests.harness.test_runner import TestRunner
def parse_args() -> argparse.Namespace: def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Didactyl automated test harness") parser = argparse.ArgumentParser(description="Didactyl automated test harness")
parser.add_argument("--config", default="tests/configs/test_genesis.jsonc") parser.add_argument("--config", default="tests/configs/test_genesis.jsonc")
parser.add_argument("--binary", default="./didactyl") parser.add_argument("--binary", default=None, help="Path to didactyl binary; if omitted, build_static --debug is used")
parser.add_argument("--suite", action="append", help="Run only this suite (repeatable)") parser.add_argument("--suite", action="append", help="Run only this suite (repeatable)")
parser.add_argument("--test", action="append", help="Run only this test name (repeatable)") parser.add_argument("--test", action="append", help="Run only this test name (repeatable)")
parser.add_argument("--api-port", type=int, default=8485) parser.add_argument("--api-port", type=int, default=8485)
@@ -30,9 +31,33 @@ def parse_args() -> argparse.Namespace:
parser.add_argument("--output-dir", default=None) parser.add_argument("--output-dir", default=None)
parser.add_argument("--verbose", action="store_true") parser.add_argument("--verbose", action="store_true")
parser.add_argument("--no-restart", action="store_true") parser.add_argument("--no-restart", action="store_true")
parser.add_argument(
"--skip-build-static-debug",
action="store_true",
help="Do not invoke ./build_static.sh --debug before running",
)
return parser.parse_args() return parser.parse_args()
def build_static_debug_binary() -> None:
cmd = ["./build_static.sh", "--debug"]
print("Building debug static binary via ./build_static.sh --debug ...")
subprocess.run(cmd, check=True)
def resolve_default_debug_binary() -> Path:
candidates = [
Path("./didactyl_static_x86_64_debug"),
Path("./didactyl_static_arm64_debug"),
Path("./didactyl_static_armv7_debug"),
Path("./didactyl_static_armv6_debug"),
]
existing = [p for p in candidates if p.exists() and p.is_file()]
if existing:
return existing[0]
return Path("./didactyl_static_x86_64_debug")
def main() -> int: def main() -> int:
args = parse_args() args = parse_args()
@@ -40,9 +65,17 @@ def main() -> int:
output_dir = args.output_dir or f"tests/results/{run_ts}" output_dir = args.output_dir or f"tests/results/{run_ts}"
Path(output_dir).mkdir(parents=True, exist_ok=True) Path(output_dir).mkdir(parents=True, exist_ok=True)
binary = Path(args.binary) if not args.skip_build_static_debug:
try:
build_static_debug_binary()
except subprocess.CalledProcessError as exc:
print(f"build_static debug build failed with exit code {exc.returncode}")
return 2
binary = Path(args.binary) if args.binary else resolve_default_debug_binary()
if not binary.exists(): if not binary.exists():
print(f"didactyl binary not found: {binary}") print(f"didactyl binary not found: {binary}")
print("Pass --binary <path> or run ./build_static.sh --debug")
return 2 return 2
config = Path(args.config) config = Path(args.config)