{"id":38737157,"url":"https://github.com/huijari/metacarpal","last_synced_at":"2026-01-17T11:33:28.755Z","repository":{"id":88450309,"uuid":"186731874","full_name":"huijari/metacarpal","owner":"huijari","description":"tap-producing test harness for cpp","archived":false,"fork":false,"pushed_at":"2019-08-19T15:25:53.000Z","size":31,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-10-20T20:16:15.362Z","etag":null,"topics":["cpp","tap","testing"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/huijari.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-05-15T02:05:30.000Z","updated_at":"2023-10-20T20:16:15.682Z","dependencies_parsed_at":"2023-03-13T18:24:28.602Z","dependency_job_id":null,"html_url":"https://github.com/huijari/metacarpal","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/huijari/metacarpal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huijari%2Fmetacarpal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huijari%2Fmetacarpal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huijari%2Fmetacarpal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huijari%2Fmetacarpal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/huijari","download_url":"https://codeload.github.com/huijari/metacarpal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/huijari%2Fmetacarpal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28507675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T10:25:30.148Z","status":"ssl_error","status_checked_at":"2026-01-17T10:25:29.718Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","tap","testing"],"created_at":"2026-01-17T11:33:28.652Z","updated_at":"2026-01-17T11:33:28.744Z","avatar_url":"https://github.com/huijari.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Logo of the project](https://raw.githubusercontent.com/huijari/metacarpal/master/logo.png)\n\n# metacarpal\n\n\u003e tap-producing test harness for cpp\n\n## Installation\n\nTo get started you need to download the [latest version](https://raw.githubusercontent.com/huijari/metacarpal/master/metacarpal.hpp)\nwhich is just a single header and include it in your test file.\n\n## Example usage\n\n```cpp\n#include \u003cmetacarpal.hpp\u003e\n\nint main() {\n  Metacarpal::Producer p;\n\n  p.test(\"sum\");\n  p.equal(1 + 1, 2, \"one plus one should be 2\");\n\n  p.test(\"logic\");\n  p.ok(true \u0026\u0026 true, \"true and true should be truthy\");\n  if (false || true)\n    p.pass(\"or is working\");\n  else\n    p.fail(\"or isn't working\");\n\n  p.test(\"failing\");\n  p.equal(\"this string should be\", \"that\");\n\n  return p.end();\n}\n```\n\n## Example output\n\n```\n# sum\nok 1 1 plus 1 should be 2\n# logic\nok 2 true and true should be truthy\nok 3 or is working\n# failing\nnot ok 4\n  ---\n    operator:   equal\n    expected:   that\n    actual:     this string should be\n  ...\n1..4\n# tests 4\n# pass 3\n# fail 1\n```\n\n## Reporters\n\nThe TAP output is somewhat good even for humans,\nbut if you want a more colorful/pretty output there are lots of [custom reporters](https://github.com/sindresorhus/awesome-tap#reporters).\n\n## API\n\n### test(string name)\n\n- @param name - test name\n\nCreate a new test\n\n### pass(string message)\n\n- @param message - optional message\n- @returns true\n\nGenerate a passing assertion with an optional message\n\n### fail(string message)\n\n- @param message - optional message\n- @returns false\n\nGenerate a failing assertion with an optional message\n\n### ok(bool value, string message)\n\n- @param value - value to be asserted\n- @param message - optional description message\n- @returns true if ok\n\nAssert that value is truthy with an optional description message\n\n### equal(T value, T expected, string message)\n\n- @param value - actual value\n- @param expected - expected value\n- @param message - optional description message\n- @returns true if equal\n\nAssert that both values are equal with an optional description message\n\n### end()\n\n- @returns the number of failed tests capped at 254\n\nDeclare the end of the tests, finalizing the producer's output\n\n## License\n\nGPL-3.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuijari%2Fmetacarpal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhuijari%2Fmetacarpal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhuijari%2Fmetacarpal/lists"}