{"action":"created","issue":{"url":"https://api.github.com/repos/ethereum/cpp-ethereum/issues/4515","repository_url":"https://api.github.com/repos/ethereum/cpp-ethereum","labels_url":"https://api.github.com/repos/ethereum/cpp-ethereum/issues/4515/labels{/name}","comments_url":"https://api.github.com/repos/ethereum/cpp-ethereum/issues/4515/comments","events_url":"https://api.github.com/repos/ethereum/cpp-ethereum/issues/4515/events","html_url":"https://github.com/ethereum/cpp-ethereum/issues/4515","id":258489224,"number":4515,"title":"libfuzzer-friendly GeneralStateTest generation","user":{"login":"pirapira","id":44281,"avatar_url":"https://avatars0.githubusercontent.com/u/44281?v=4","gravatar_id":"","url":"https://api.github.com/users/pirapira","html_url":"https://github.com/pirapira","followers_url":"https://api.github.com/users/pirapira/followers","following_url":"https://api.github.com/users/pirapira/following{/other_user}","gists_url":"https://api.github.com/users/pirapira/gists{/gist_id}","starred_url":"https://api.github.com/users/pirapira/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pirapira/subscriptions","organizations_url":"https://api.github.com/users/pirapira/orgs","repos_url":"https://api.github.com/users/pirapira/repos","events_url":"https://api.github.com/users/pirapira/events{/privacy}","received_events_url":"https://api.github.com/users/pirapira/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-09-18T13:57:20Z","updated_at":"2017-09-18T15:09:44Z","closed_at":null,"author_association":"MEMBER","body":"Currently, `test/tools/fuzzTesting` can randomly generate a GeneralStateTest.\r\n\r\nThis issue keeps track of replacing the random generation with some input byte string (given at runtime) so that `libfuzzer` can explore the VM implementation.\r\n\r\nConcretely, the task involves implementing a function\r\n```\r\nextern \"C\" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)\r\n```\r\nthat generates a GeneralStateTest and then run it.  The input `Data` should be used in a straightforward way (not going through compression/encryption/decryption).  The whole function should be deterministic, without relying on pseudo random numbers or timestamps.\r\n\r\nWhen we connect `libfuzzer` with this function, `libfuzzer` will try to find inputs that cover different execution paths in the VM implementation."},"comment":{"url":"https://api.github.com/repos/ethereum/cpp-ethereum/issues/comments/330254200","html_url":"https://github.com/ethereum/cpp-ethereum/issues/4515#issuecomment-330254200","issue_url":"https://api.github.com/repos/ethereum/cpp-ethereum/issues/4515","id":330254200,"user":{"login":"pirapira","id":44281,"avatar_url":"https://avatars0.githubusercontent.com/u/44281?v=4","gravatar_id":"","url":"https://api.github.com/users/pirapira","html_url":"https://github.com/pirapira","followers_url":"https://api.github.com/users/pirapira/followers","following_url":"https://api.github.com/users/pirapira/following{/other_user}","gists_url":"https://api.github.com/users/pirapira/gists{/gist_id}","starred_url":"https://api.github.com/users/pirapira/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pirapira/subscriptions","organizations_url":"https://api.github.com/users/pirapira/orgs","repos_url":"https://api.github.com/users/pirapira/repos","events_url":"https://api.github.com/users/pirapira/events{/privacy}","received_events_url":"https://api.github.com/users/pirapira/received_events","type":"User","site_admin":false},"created_at":"2017-09-18T15:09:44Z","updated_at":"2017-09-18T15:09:44Z","author_association":"MEMBER","body":"No idea.  In the worst case, we introduce another macro."}}
{"actor":{"display_login":"pirapira"}}