{"action":"created","issue":{"url":"https://api.github.com/repos/dominictarr/interleavings/issues/1","labels_url":"https://api.github.com/repos/dominictarr/interleavings/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/dominictarr/interleavings/issues/1/comments","events_url":"https://api.github.com/repos/dominictarr/interleavings/issues/1/events","html_url":"https://github.com/dominictarr/interleavings/issues/1","id":96428763,"number":1,"title":"TODO: wrappers for level, fs, and net, setTimeout etc","user":{"login":"dominictarr","id":259374,"avatar_url":"https://avatars.githubusercontent.com/u/259374?v=3","gravatar_id":"","url":"https://api.github.com/users/dominictarr","html_url":"https://github.com/dominictarr","followers_url":"https://api.github.com/users/dominictarr/followers","following_url":"https://api.github.com/users/dominictarr/following{/other_user}","gists_url":"https://api.github.com/users/dominictarr/gists{/gist_id}","starred_url":"https://api.github.com/users/dominictarr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dominictarr/subscriptions","organizations_url":"https://api.github.com/users/dominictarr/orgs","repos_url":"https://api.github.com/users/dominictarr/repos","events_url":"https://api.github.com/users/dominictarr/events{/privacy}","received_events_url":"https://api.github.com/users/dominictarr/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-07-21T22:13:25Z","updated_at":"2015-07-21T22:29:52Z","closed_at":null,"body":"it would be greate to create in memory mocks of various async node apis,\r\nbecause this would make node.js deterministic, and thus we'd be able to run pretty much any test through interleavings and search for race conditions.\r\n\r\nthis could be particularily useful for things like ssb @pfraze\r\nI'd expect that the level wrapper would be the easiest, since there are already memory only leveldowns that could be adapted.\r\n\r\nit would probably be easiest to write a mock for the net binding:\r\nhttps://github.com/nodejs/io.js/blob/master/lib/net.js#L14-L19\r\nonly a few things to replace.\r\n\r\nfs would need a few things:\r\n`binding.{stat, access, open, read, close, fstat, lstat, writeBuffer, writeString, rename, unlink, ftruncate, readdir, mkdir, rmdir, fdatasync, fsync, readlink, symlink, link, fchmod, chmod, fchown, chown, utimes, futimes, StatWatcher}` okay so that is actually quite a lot.\r\n"},"comment":{"url":"https://api.github.com/repos/dominictarr/interleavings/issues/comments/123498553","html_url":"https://github.com/dominictarr/interleavings/issues/1#issuecomment-123498553","issue_url":"https://api.github.com/repos/dominictarr/interleavings/issues/1","id":123498553,"user":{"login":"pfraze","id":1270099,"avatar_url":"https://avatars.githubusercontent.com/u/1270099?v=3","gravatar_id":"","url":"https://api.github.com/users/pfraze","html_url":"https://github.com/pfraze","followers_url":"https://api.github.com/users/pfraze/followers","following_url":"https://api.github.com/users/pfraze/following{/other_user}","gists_url":"https://api.github.com/users/pfraze/gists{/gist_id}","starred_url":"https://api.github.com/users/pfraze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pfraze/subscriptions","organizations_url":"https://api.github.com/users/pfraze/orgs","repos_url":"https://api.github.com/users/pfraze/repos","events_url":"https://api.github.com/users/pfraze/events{/privacy}","received_events_url":"https://api.github.com/users/pfraze/received_events","type":"User","site_admin":false},"created_at":"2015-07-21T22:29:52Z","updated_at":"2015-07-21T22:29:52Z","body":":+1: very good idea"}}