{ "recorded_at_utc": "2026-10-27T02:52:00.131691+00:00", "reference": { "upstream_commit": "3516c776a1fcbd83d234efc007e3a49807d6ed91", "php": "8.4.27", "laravel": "13.29.0", "composer_lock_sha256": "b1376d21c517d700bc48b196e9dc2b30257caf25774e315ff9d1bf8a2411241a", "database": "fresh disposable SQLite, all 42 migrations completed; independent temporary application storage", "production_dependencies": 110, "required_extensions_loaded": true, "composer_dependencies_total_with_dev": 153, "materialized_sqlite_ddl": "sqlite-reference-schema.sql", "tables": 22, "explicit_indexes": 34 }, "candidate": { "artifact": "preexisting target/release/twofauth-rs, predates current source changes", "sha256": "e3d2f4435197bad611e2150c128b0edfcf97ce90d61156a430e948f1461438ba" }, "limits": [ "This is a limited differential result, not replacement certification.", "Random CSRF output and cookie protocols are not normalized.", "Only synthetic fixture data was used.", "Body IDs ignored only for account create/read as specified in cases.stateful.json.", "State effects checked through API readback, not SQL table comparison.", "New source changes must be rebuilt and compared again." ], "results": { "default": { "exit_code": 1, "cases": [ { "case": 0, "result": "different", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": false, "body": false } }, { "case": 1, "result": "different", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": false } }, { "case": 2, "result": "different", "reference_status": 200, "candidate_status": 404, "checks": { "status": false, "content_type": true, "body": false } }, { "case": 3, "result": "different", "reference_status": 404, "candidate_status": 404, "checks": { "status": true, "content_type": true, "body": false } } ] }, "stateful": { "exit_code": 1, "cases": [ { "case": 0, "result": "different", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": false, "body": false, "expected_status": true } }, { "case": 1, "result": "different", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": false, "expected_status": true } }, { "case": 2, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 3, "result": "equal", "reference_status": 201, "candidate_status": 201, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 4, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 5, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 6, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 7, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 8, "result": "equal", "reference_status": 204, "candidate_status": 204, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 9, "result": "different", "reference_status": 404, "candidate_status": 404, "checks": { "status": true, "content_type": true, "body": false, "expected_status": true } }, { "case": 10, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 11, "result": "different", "reference_status": 401, "candidate_status": 401, "checks": { "status": true, "content_type": true, "body": false, "expected_status": true } } ] }, "extended": { "exit_code": 1, "cases": [ { "case": 0, "result": "different", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": false, "body": false, "expected_status": true } }, { "case": 1, "result": "different", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": false, "expected_status": true } }, { "case": 2, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 3, "result": "equal", "reference_status": 201, "candidate_status": 201, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 4, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 5, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 6, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 7, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 8, "result": "different", "reference_status": 201, "candidate_status": 201, "checks": { "status": true, "content_type": true, "body": false, "expected_status": true } }, { "case": 9, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 10, "result": "equal", "reference_status": 204, "candidate_status": 204, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 11, "result": "different", "reference_status": 403, "candidate_status": 403, "checks": { "status": true, "content_type": true, "body": false, "expected_status": true } }, { "case": 12, "result": "different", "reference_status": 403, "candidate_status": 404, "checks": { "status": false, "content_type": true, "body": false, "expected_status": false } }, { "case": 13, "result": "different", "reference_status": 403, "candidate_status": 404, "checks": { "status": false, "content_type": true, "body": false, "expected_status": false } }, { "case": 14, "result": "different", "reference_status": 200, "candidate_status": 404, "checks": { "status": false, "content_type": true, "body": false, "expected_status": false } }, { "case": 15, "result": "different", "reference_status": 422, "candidate_status": 404, "checks": { "status": false, "content_type": true, "body": false, "expected_status": false } }, { "case": 16, "result": "different", "reference_status": 422, "candidate_status": 405, "checks": { "status": false, "content_type": false, "body": false, "expected_status": false } }, { "case": 17, "result": "different", "reference_status": 422, "candidate_status": 422, "checks": { "status": true, "content_type": true, "body": false, "expected_status": true } }, { "case": 18, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 19, "result": "equal", "reference_status": 204, "candidate_status": 204, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 20, "result": "different", "reference_status": 404, "candidate_status": 404, "checks": { "status": true, "content_type": true, "body": false, "expected_status": true } }, { "case": 21, "result": "equal", "reference_status": 200, "candidate_status": 200, "checks": { "status": true, "content_type": true, "body": true, "expected_status": true } }, { "case": 22, "result": "different", "reference_status": 401, "candidate_status": 401, "checks": { "status": true, "content_type": true, "body": false, "expected_status": true } } ] } }, "reproduction": "PHPRC= python tools/run_reference.py --php --source ../upstream --candidate-binary target/release/twofauth-rs --output ", "upstream_suite": { "command": "PHPRC= PATH=:$PATH php artisan config:clear; php vendor/bin/phpunit", "tests": 1518, "assertions": 4573, "errors": 5, "failures": 2, "failure_details": [ { "test": "Tests.Feature.Models.TwoFAccountModelTest::test_fill_with_custom_totp_uri_returns_correct_value", "kind": "failure", "message": "Tests\\Feature\\Models\\TwoFAccountModelTest::test_fill_with_custom_totp_uri_returns_correct_value" }, { "test": "Tests.Feature.Models.TwoFAccountModelTest::test_fill_with_custom_hotp_uri_returns_correct_value", "kind": "failure", "message": "Tests\\Feature\\Models\\TwoFAccountModelTest::test_fill_with_custom_hotp_uri_returns_correct_value" }, { "test": "Tests.Feature.Services.IconServiceTest::test_build_from_remote_image_stores_icon_and_returns_name with data set \"PNG\"", "kind": "error", "message": "Tests\\Feature\\Services\\IconServiceTest::test_build_from_remote_image_stores_icon_and_returns_name with data set \"PNG\"" }, { "test": "Tests.Feature.Services.IconServiceTest::test_build_from_remote_image_stores_icon_and_returns_name with data set \"JPEG\"", "kind": "error", "message": "Tests\\Feature\\Services\\IconServiceTest::test_build_from_remote_image_stores_icon_and_returns_name with data set \"JPEG\"" }, { "test": "Tests.Feature.Services.IconServiceTest::test_build_from_remote_image_stores_icon_and_returns_name with data set \"WEBP\"", "kind": "error", "message": "Tests\\Feature\\Services\\IconServiceTest::test_build_from_remote_image_stores_icon_and_returns_name with data set \"WEBP\"" }, { "test": "Tests.Feature.Services.IconServiceTest::test_build_from_remote_image_stores_icon_and_returns_name with data set \"BPM\"", "kind": "error", "message": "Tests\\Feature\\Services\\IconServiceTest::test_build_from_remote_image_stores_icon_and_returns_name with data set \"BPM\"" }, { "test": "Tests.Feature.Services.IconServiceTest::test_build_from_remote_image_stores_icon_and_returns_name with data set \"SVG\"", "kind": "error", "message": "Tests\\Feature\\Services\\IconServiceTest::test_build_from_remote_image_stores_icon_and_returns_name with data set \"SVG\"" } ], "limitations": [ "All seven remaining failing cases depend on real DNS resolution before mocked HTTP. dns_get_record returned false with a temporary server error for the image hosts.", "No upstream source was patched to suppress those failures." ] }, "crypto": { "php_openssl": "6/6 fixtures passed", "laravel_encrypter": "Laravel 13.29.0 Encrypter::decryptString accepted 6/6 independent Python envelopes" } }