{"id":21436997,"url":"https://github.com/axfab/kernel-scenarios","last_synced_at":"2026-01-03T15:06:54.512Z","repository":{"id":74655597,"uuid":"36187652","full_name":"AxFab/kernel-scenarios","owner":"AxFab","description":"Testing scenarios for my kernel. Those scenarios works on user mode.","archived":false,"fork":false,"pushed_at":"2016-08-26T18:40:56.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-23T09:35:31.853Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AxFab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2015-05-24T18:54:44.000Z","updated_at":"2016-08-26T18:40:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"9cb1e901-e391-4e16-8907-8264c180aaf6","html_url":"https://github.com/AxFab/kernel-scenarios","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxFab%2Fkernel-scenarios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxFab%2Fkernel-scenarios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxFab%2Fkernel-scenarios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxFab%2Fkernel-scenarios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AxFab","download_url":"https://codeload.github.com/AxFab/kernel-scenarios/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243945888,"owners_count":20372951,"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-23T00:17:15.771Z","updated_at":"2026-01-03T15:06:54.478Z","avatar_url":"https://github.com/AxFab.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kernel scenarios\n\nThose are test scenario for my kernel.\n\nYou will need this repository to launch functional tests.\nPlace both repository `kernel` and `kernel-scenarios` on the same folder.\nThen use this command to launch all test and get coverage at the same time.\n\n    make ARCH=um coverage\n\nThe last result I get was:\n\n  - lines: 74.5% (2335 of 3133 lines)\n  - functions: 86.6% (206 of 238 functions)\n  - branches: 52.3% (714 of 1366 branches)\n\nThoses tests compensate for the lack of unit-testing.\n\n## Write new tests. \n\nTo write a new test you need to create a new folder and add a new line on \nkernel/src/_um/start.c:\n\n    until = until || testCase (\"nameOfTheNewFolder\");\n\nThen add one file `*.strace` by thread that will be running during your tests.\nthe strace file is similar to the output of an strace. The kernel will parse\nthose to execute the correct syscalls. those file are names with the pattern:\n`{folder}/Proc{pid}-Th{tidx}.strace` (tidx is a thread id, incremented for \neach process).\n\nFinaly don't forget the file named `Hdw.sta` which contains various lines starting\neither by C, S or H, which will fix the timeline of the CPU (C for syscall, S for scheduler ticks and H for hardware interruption).\nThe format of this last file doesn't suit me much, but it's the best way I \nfound yet to avoid randomness during tests while keeping scheduler alive.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxfab%2Fkernel-scenarios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxfab%2Fkernel-scenarios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxfab%2Fkernel-scenarios/lists"}