{"id":18546549,"url":"https://github.com/saveourtool/gsac-save","last_synced_at":"2025-05-15T07:09:01.322Z","repository":{"id":194982241,"uuid":"691112242","full_name":"saveourtool/GSAC-SAVE","owner":"saveourtool","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-28T08:43:57.000Z","size":2342,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-02-17T09:33:39.523Z","etag":null,"topics":[],"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/saveourtool.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}},"created_at":"2023-09-13T14:20:10.000Z","updated_at":"2024-08-02T14:32:54.000Z","dependencies_parsed_at":"2024-11-06T20:32:38.136Z","dependency_job_id":null,"html_url":"https://github.com/saveourtool/GSAC-SAVE","commit_stats":null,"previous_names":["akuleshov7/gsac","saveourtool/gsac-save"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saveourtool%2FGSAC-SAVE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saveourtool%2FGSAC-SAVE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saveourtool%2FGSAC-SAVE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saveourtool%2FGSAC-SAVE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saveourtool","download_url":"https://codeload.github.com/saveourtool/GSAC-SAVE/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254292042,"owners_count":22046426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-06T20:25:53.630Z","updated_at":"2025-05-15T07:08:56.302Z","avatar_url":"https://github.com/saveourtool.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Current repo contain the set of tests, adopted for execution in [saveourtool](https://saveourtool.com/) platform.\r\nwith [save-cli](https://github.com/saveourtool/save-cli) engine\r\n\r\n### Local run\r\n\r\nJust execute\r\n\r\n    ./run_local.sh\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary\u003eDetails\u003c/summary\u003e\r\n\r\nIt will do the following steps:\r\n\r\n1) Extract the files from `executable` directory to the root of project.\r\n\r\n2) Run `./setup.sh` -- it will install required libraries and create directories, which will be used later.\r\n\r\n3) Execute `./save-0.3.9-linuxX64.kexe . --log results_only`\r\n\r\n\u003c/details\u003e\r\n\r\n#### Explanation\r\n\r\nThe repository contain `save.toml` file, which responsible for configuration of `SAVE`.\r\n\r\nIn current version, it configured in such way, that it will find all tests, that\r\nmatched `testNameRegex` pattern, i.e. containing `EASY|MEDIUM|HARD` in names,\r\nand pass each test file to the `run_save-cli.sh` script (it will be automatically done by `save.kexe`).\r\n\r\nFirstly, the `run_save-cli.sh` script will create `*.bc` files for each test via `clang -emit-llvm` in `bc_dir`\r\nand pass plugin, called `libAnalyzer.so` to the `llvm opt`.\r\n\r\nThe `libAnalyzer.so`, provided in the `executable` directory of repository will create\r\n`.sarif` report files for each test, after what all reports will be collected in `reports` directory.\r\n\r\nThe `save` will produce the report in stdout in pretty format.\r\n\r\nIt will contain information about matched warnings, where expected warnings were taken from `.sarif` reports,\r\ncreated by `libAnalyzer.so` and actual warnings extracted directly from the test files, according pattern `expectedWarningsPattern`.\r\n\r\n#### Note\r\nAll **expected** warnings should be provided in tests like a comments:\r\n\r\n```kotlin\r\n// ;warn:10:5: [ENUMS_SEPARATED] enum is incorrectly formatted: enums must end with semicolon{{.*}}\r\nenum class EnumValueSnakeCaseTest {\r\n}\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaveourtool%2Fgsac-save","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaveourtool%2Fgsac-save","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaveourtool%2Fgsac-save/lists"}