OK absent adapter defaults to pi OK adapter mock validates (exit 0) OK unsupported adapter exits 2 (exit 2) OK env exports adapter OK bootstrap creates default when absent (exit 0) OK bootstrap wrote config file OK bootstrap is idempotent on existing config (exit 0) OK bootstrap did not rewrite existing config OK validate missing config exits 3 (exit 3) OK malformed JSON exits 2 (exit 2) OK unsupported configVersion exits 2 (exit 2) OK unknown top-level key exits 2 (exit 2) OK unknown execution key exits 2 (exit 2) OK unsupported backend exits 2 (exit 2) OK unsupported environment exits 2 (exit 2) OK relative dataRoot exits 2 (exit 2) OK non-canonical dataRoot exits 2 (exit 2) OK filesystem root dataRoot exits 2 (exit 2) OK home directory dataRoot exits 2 (exit 2) OK dataRoot containing config dir exits 2 (exit 2) OK control character in provider exits 2 (exit 2) OK symlinked config file exits 2 (exit 2) OK env exports resolve correctly OK valid console.sso loads and is in the output OK console.sso HS256 alg exits 2 naming the path (exit 2) OK console.sso alg none exits 2 naming the path (exit 2) OK console.sso missing slot field exits 2 naming the path (exit 2) OK console.sso slot name outside the pattern exits 2 naming the path (exit 2) OK unknown key under console exits 2 naming the path (exit 2) OK config without console loads with unchanged output OK failed validation modified nothing selftest: 31 passed, 0 failed