{"id":28239657,"url":"https://github.com/codezeilen/rosetta-test","last_synced_at":"2026-03-04T23:31:11.838Z","repository":{"id":289472842,"uuid":"829108553","full_name":"codeZeilen/rosetta-test","owner":"codeZeilen","description":"Write and use test suites across projects in different programming languages.","archived":false,"fork":false,"pushed_at":"2025-05-23T13:04:18.000Z","size":746,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-07T07:03:10.196Z","etag":null,"topics":["automated-testing","conformance-suite","test-framework","test-suites","testing"],"latest_commit_sha":null,"homepage":"","language":"Scheme","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codeZeilen.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-15T19:20:19.000Z","updated_at":"2025-05-23T13:04:21.000Z","dependencies_parsed_at":"2025-04-23T13:48:52.980Z","dependency_job_id":"f4c731b3-f6f9-4011-9335-73eea9924c68","html_url":"https://github.com/codeZeilen/rosetta-test","commit_stats":null,"previous_names":["codezeilen/rosetta-test"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codeZeilen/rosetta-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeZeilen%2Frosetta-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeZeilen%2Frosetta-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeZeilen%2Frosetta-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeZeilen%2Frosetta-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeZeilen","download_url":"https://codeload.github.com/codeZeilen/rosetta-test/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeZeilen%2Frosetta-test/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30099337,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T22:49:54.894Z","status":"ssl_error","status_checked_at":"2026-03-04T22:49:48.883Z","response_time":59,"last_error":"SSL_read: 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":["automated-testing","conformance-suite","test-framework","test-suites","testing"],"created_at":"2025-05-19T02:12:56.665Z","updated_at":"2026-03-04T23:31:11.505Z","avatar_url":"https://github.com/codeZeilen.png","language":"Scheme","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RosettaTest \n[![Interpreters Tests](https://github.com/codeZeilen/rosetta-test/actions/workflows/interpreter-tests.yml/badge.svg)](https://github.com/codeZeilen/rosetta-test/actions/workflows/interpreter-tests.yml)\n[![Python Suites](https://github.com/codeZeilen/rosetta-test/actions/workflows/python-suites.yml/badge.svg)](https://github.com/codeZeilen/rosetta-test/actions/workflows/python-suites.yml)\n[![Ruby Suites](https://github.com/codeZeilen/rosetta-test/actions/workflows/ruby-suites.yml/badge.svg)](https://github.com/codeZeilen/rosetta-test/actions/workflows/ruby-suites.yml)\n[![JavaScript Suites](https://github.com/codeZeilen/rosetta-test/actions/workflows/javascript-suites.yml/badge.svg)](https://github.com/codeZeilen/rosetta-test/actions/workflows/javascript-suites.yml)\n\nWith the RosettaTest project, you only have to write a test suite once for multiple implementations.\n\n(This is still a prototype project. Expect major architectural or API changes, as well as major bugs and inconsistencies.)\n\n## Trying it out\n\nCurrently, the best-supported language is Python. To get an idea of how to create and port RosettaTest suites, try the Python version of the SMTP test suite, which runs against the SMTP implementation in the Python standard library.\n\nYou can run the SMTP test suite in Python by executing:\n\n```Python\npython3 rosetta-test-py/smtp.py\n```\n\nThis will run the test suite from `/rosetta-test-suites/smtp.rosetta` using the mappings in `/rosetta-test-py/smtp.py`.\n\n\n## Structure of the Repository\n\n- The core RosettaTest language (`/rosetta-test`)\n- RosettaTest language interpreters for \n  - Python (`/rosetta-test-py`) \n  - Ruby (`/rosetta-test-rb`)\n  - JavaScript (`/rosetta-test-js`)\n  - Smalltalk (`/rosetta-test-s`)\n- A full test suite (`/rosetta-test-suites`) for \n  - SMTP (`smtp.rosetta`)\n  - RFC JSON parsing (`json-rfc.rosetta`)\n- Prototype test suites (`/rosetta-test-suites`) for \n  - sending MIME documents (`sendmail.rosetta`) \n  - RFC URI parsing (`url-parsing-rfc.rosetta`)\n\n\n## How it Works (Overview)\n\nThe test suites are written in the RosettaTest language. The parts that are implementation-specific are designated as _placeholders_. For every implementation that you want to test, you need to fill in these placeholders.\n\nThus, if you want to execute a RosettaTest suite for your project, you need:\n\n  1. A _RosettaTest language interpreter_ for your language\n  2. A _mapping_ that fills each placeholder with a function from the implementation. Often the mapping will not be 1:1, so you might need to write additional code to map the behavior to the expected behavior of the placeholder.\n\n\n## Acknowledgements\n- Syntax tests based on the corpus from [tree-sitter-scheme](https://github.com/6cdh/tree-sitter-scheme)\n- JSON-RFC Suite tests are based on the [JSONTestSuite](https://github.com/nst/JSONTestSuite)\n\n## Identified Defects and Implemented Improvements\n- https://github.com/Miksus/red-mail/pull/96 (proposed)\n- https://github.com/lavr/python-emails/pull/173 (proposed)\n- https://github.com/python/cpython/pull/132797 (proposed)\n- [Squeak/Smalltalk SMTPClient Patch](http://lists.squeakfoundation.org/archives/list/squeak-dev@lists.squeakfoundation.org/message/7DI6KAGWZBRNJCZ4HIM7S2QY5A3L4OO3/) (merged)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodezeilen%2Frosetta-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodezeilen%2Frosetta-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodezeilen%2Frosetta-test/lists"}