{"id":16659105,"url":"https://github.com/agroce/testfs","last_synced_at":"2025-04-09T18:41:45.101Z","repository":{"id":90292759,"uuid":"138620521","full_name":"agroce/testfs","owner":"agroce","description":"DeepState testing for TestFS, a user level toy file system that is similar to ext3","archived":false,"fork":false,"pushed_at":"2023-04-14T16:41:07.000Z","size":164,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T20:43:27.960Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":false,"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/agroce.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":"2018-06-25T16:20:59.000Z","updated_at":"2023-04-14T16:41:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"98b3e909-3eda-41d2-b505-ab71c52becd2","html_url":"https://github.com/agroce/testfs","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/agroce%2Ftestfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agroce%2Ftestfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agroce%2Ftestfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agroce%2Ftestfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agroce","download_url":"https://codeload.github.com/agroce/testfs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248089966,"owners_count":21046002,"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-10-12T10:23:49.540Z","updated_at":"2025-04-09T18:41:45.094Z","avatar_url":"https://github.com/agroce.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"testfs\n======\n\nThis is a DeepState test harness for TestFS, which is a user level toy file system that is similar to ext3.\n\nTestFS comes out of U. Toronto file system research:\n\nJ. Sun, D. Fryer, A. Goel, and A. D. Brown, “Using declarative invariants for protecting file-system integrity,” in Proceedings of the 6th Workshop on Programming Languages and Operating Systems. 2011.  http://www.sigops.org/sosp/sosp11/workshops/plos/06-sun.pdf\n\nThis version is based on a series of implementations, first adapted to DeepState by Peter Goodman (https://github.com/pgoodman/testfs), now maintained by Alex Groce.  The primary change is that a broken (undefined behavior causing) inode hash table has been disabled, with inode lookups always going to \"disk.\"  Disk here is a block-device emulated with a Big Old Array.  Also, this adds a semi-POSIX layer on top of the low-level interface to TestFS.\n\nTests.cpp shows what a DeepState harness for a POSIX-like interface looks like.\n\nThe tests check that resets at inopportune times do not make the file system unmountable (which does not hold).\n\nUsage\n=====\n\nEasiest way to play with this is to use the [DeepState docker](https://github.com/trailofbits/deepstate#DOCKER), and:\n\n1.  clone this repo\n2.  `cd testfs; make`\n\nYou then have a binary you can fuzz with Eclipser, a binary you can fuzz with libFuzzer, a binary you can fuzz with AFL, and a binary that collects code coverage information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagroce%2Ftestfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagroce%2Ftestfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagroce%2Ftestfs/lists"}