{"action":"created","comment":{"url":"https://api.github.com/repos/OPAE/opae-sdk/pulls/comments/216482781","pull_request_review_id":153975229,"id":216482781,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNjQ4Mjc4MQ==","diff_hunk":"@@ -0,0 +1,58 @@\n+# OPAE Testing Framework #\n+\n+## Objective ##\n+\n+The main goal of the testing framework used by OPAE is to enable (Google test)\n+tests that don't require the presence of either an OPAE kernel driver or an\n+OPAE compatible FPGA. An additional goal is to allow authoring tests that can\n+easily ported from a mock environment to a real system.\n+\n+\n+## Mocking the Kernel Driver ##\n+\n+The two interfaces to the OPAE Linux driver are `ioctl` calls and `sysfs`\n+files. The OPAE C library uses both of these interfaces in its implementation\n+to control and/or query the device. To test the API functions (including\n+internal functions used within), a `mock` driver has been developed that can\n+allow for calling these functions without calling the kernel driver through\n+these interfaces. At a high level, system calls related to `ioctl` and `sysfs`\n+files (eg. `ioctl`, `open`) are implemented in a C file called `mock.c` which\n+in turn calls into a C++ singleton class called `test_system` using its C\n+interface. This C++ singleton can also be used the any google test code to call","path":"testing/readme.md","position":21,"original_position":21,"commit_id":"54fe9b82cf8c5aa0e7a357117c083c71338a05b5","original_commit_id":"54fe9b82cf8c5aa0e7a357117c083c71338a05b5","user":{"login":"ibarraza","id":33640356,"node_id":"MDQ6VXNlcjMzNjQwMzU2","avatar_url":"https://avatars0.githubusercontent.com/u/33640356?v=4","gravatar_id":"","url":"https://api.github.com/users/ibarraza","html_url":"https://github.com/ibarraza","followers_url":"https://api.github.com/users/ibarraza/followers","following_url":"https://api.github.com/users/ibarraza/following{/other_user}","gists_url":"https://api.github.com/users/ibarraza/gists{/gist_id}","starred_url":"https://api.github.com/users/ibarraza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ibarraza/subscriptions","organizations_url":"https://api.github.com/users/ibarraza/orgs","repos_url":"https://api.github.com/users/ibarraza/repos","events_url":"https://api.github.com/users/ibarraza/events{/privacy}","received_events_url":"https://api.github.com/users/ibarraza/received_events","type":"User","site_admin":false},"body":"Typo.","created_at":"2018-09-10T21:42:59Z","updated_at":"2018-09-10T21:43:36Z","html_url":"https://github.com/OPAE/opae-sdk/pull/652#discussion_r216482781","pull_request_url":"https://api.github.com/repos/OPAE/opae-sdk/pulls/652","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/OPAE/opae-sdk/pulls/comments/216482781"},"html":{"href":"https://github.com/OPAE/opae-sdk/pull/652#discussion_r216482781"},"pull_request":{"href":"https://api.github.com/repos/OPAE/opae-sdk/pulls/652"}}},"pull_request":{"url":"https://api.github.com/repos/OPAE/opae-sdk/pulls/652","id":214451563,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE0NDUxNTYz","html_url":"https://github.com/OPAE/opae-sdk/pull/652","diff_url":"https://github.com/OPAE/opae-sdk/pull/652.diff","patch_url":"https://github.com/OPAE/opae-sdk/pull/652.patch","issue_url":"https://api.github.com/repos/OPAE/opae-sdk/issues/652","number":652,"state":"open","locked":false,"title":"Add testing/readme and image","user":{"login":"r-rojo","id":22808196,"node_id":"MDQ6VXNlcjIyODA4MTk2","avatar_url":"https://avatars3.githubusercontent.com/u/22808196?v=4","gravatar_id":"","url":"https://api.github.com/users/r-rojo","html_url":"https://github.com/r-rojo","followers_url":"https://api.github.com/users/r-rojo/followers","following_url":"https://api.github.com/users/r-rojo/following{/other_user}","gists_url":"https://api.github.com/users/r-rojo/gists{/gist_id}","starred_url":"https://api.github.com/users/r-rojo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/r-rojo/subscriptions","organizations_url":"https://api.github.com/users/r-rojo/orgs","repos_url":"https://api.github.com/users/r-rojo/repos","events_url":"https://api.github.com/users/r-rojo/events{/privacy}","received_events_url":"https://api.github.com/users/r-rojo/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-09-10T21:37:02Z","updated_at":"2018-09-10T21:43:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"18bdae97b78c7508ac971425feaed4c43eb5d275","assignee":{"login":"r-rojo","id":22808196,"node_id":"MDQ6VXNlcjIyODA4MTk2","avatar_url":"https://avatars3.githubusercontent.com/u/22808196?v=4","gravatar_id":"","url":"https://api.github.com/users/r-rojo","html_url":"https://github.com/r-rojo","followers_url":"https://api.github.com/users/r-rojo/followers","following_url":"https://api.github.com/users/r-rojo/following{/other_user}","gists_url":"https://api.github.com/users/r-rojo/gists{/gist_id}","starred_url":"https://api.github.com/users/r-rojo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/r-rojo/subscriptions","organizations_url":"https://api.github.com/users/r-rojo/orgs","repos_url":"https://api.github.com/users/r-rojo/repos","events_url":"https://api.github.com/users/r-rojo/events{/privacy}","received_events_url":"https://api.github.com/users/r-rojo/received_events","type":"User","site_admin":false},"assignees":[{"login":"r-rojo","id":22808196,"node_id":"MDQ6VXNlcjIyODA4MTk2","avatar_url":"https://avatars3.githubusercontent.com/u/22808196?v=4","gravatar_id":"","url":"https://api.github.com/users/r-rojo","html_url":"https://github.com/r-rojo","followers_url":"https://api.github.com/users/r-rojo/followers","following_url":"https://api.github.com/users/r-rojo/following{/other_user}","gists_url":"https://api.github.com/users/r-rojo/gists{/gist_id}","starred_url":"https://api.github.com/users/r-rojo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/r-rojo/subscriptions","organizations_url":"https://api.github.com/users/r-rojo/orgs","repos_url":"https://api.github.com/users/r-rojo/repos","events_url":"https://api.github.com/users/r-rojo/events{/privacy}","received_events_url":"https://api.github.com/users/r-rojo/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"nakulkorde","id":10795903,"node_id":"MDQ6VXNlcjEwNzk1OTAz","avatar_url":"https://avatars2.githubusercontent.com/u/10795903?v=4","gravatar_id":"","url":"https://api.github.com/users/nakulkorde","html_url":"https://github.com/nakulkorde","followers_url":"https://api.github.com/users/nakulkorde/followers","following_url":"https://api.github.com/users/nakulkorde/following{/other_user}","gists_url":"https://api.github.com/users/nakulkorde/gists{/gist_id}","starred_url":"https://api.github.com/users/nakulkorde/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nakulkorde/subscriptions","organizations_url":"https://api.github.com/users/nakulkorde/orgs","repos_url":"https://api.github.com/users/nakulkorde/repos","events_url":"https://api.github.com/users/nakulkorde/events{/privacy}","received_events_url":"https://api.github.com/users/nakulkorde/received_events","type":"User","site_admin":false},{"login":"jelonanX","id":42047493,"node_id":"MDQ6VXNlcjQyMDQ3NDkz","avatar_url":"https://avatars0.githubusercontent.com/u/42047493?v=4","gravatar_id":"","url":"https://api.github.com/users/jelonanX","html_url":"https://github.com/jelonanX","followers_url":"https://api.github.com/users/jelonanX/followers","following_url":"https://api.github.com/users/jelonanX/following{/other_user}","gists_url":"https://api.github.com/users/jelonanX/gists{/gist_id}","starred_url":"https://api.github.com/users/jelonanX/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jelonanX/subscriptions","organizations_url":"https://api.github.com/users/jelonanX/orgs","repos_url":"https://api.github.com/users/jelonanX/repos","events_url":"https://api.github.com/users/jelonanX/events{/privacy}","received_events_url":"https://api.github.com/users/jelonanX/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/OPAE/opae-sdk/pulls/652/commits","review_comments_url":"https://api.github.com/repos/OPAE/opae-sdk/pulls/652/comments","review_comment_url":"https://api.github.com/repos/OPAE/opae-sdk/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OPAE/opae-sdk/issues/652/comments","statuses_url":"https://api.github.com/repos/OPAE/opae-sdk/statuses/54fe9b82cf8c5aa0e7a357117c083c71338a05b5","head":{"label":"OPAE:rrojo/tests-doc","ref":"rrojo/tests-doc","sha":"54fe9b82cf8c5aa0e7a357117c083c71338a05b5","user":{"login":"OPAE","id":30705801,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwNzA1ODAx","avatar_url":"https://avatars2.githubusercontent.com/u/30705801?v=4","gravatar_id":"","url":"https://api.github.com/users/OPAE","html_url":"https://github.com/OPAE","followers_url":"https://api.github.com/users/OPAE/followers","following_url":"https://api.github.com/users/OPAE/following{/other_user}","gists_url":"https://api.github.com/users/OPAE/gists{/gist_id}","starred_url":"https://api.github.com/users/OPAE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OPAE/subscriptions","organizations_url":"https://api.github.com/users/OPAE/orgs","repos_url":"https://api.github.com/users/OPAE/repos","events_url":"https://api.github.com/users/OPAE/events{/privacy}","received_events_url":"https://api.github.com/users/OPAE/received_events","type":"Organization","site_admin":false},"repo":{"id":102083635,"node_id":"MDEwOlJlcG9zaXRvcnkxMDIwODM2MzU=","name":"opae-sdk","full_name":"OPAE/opae-sdk","owner":{"login":"OPAE","id":30705801,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwNzA1ODAx","avatar_url":"https://avatars2.githubusercontent.com/u/30705801?v=4","gravatar_id":"","url":"https://api.github.com/users/OPAE","html_url":"https://github.com/OPAE","followers_url":"https://api.github.com/users/OPAE/followers","following_url":"https://api.github.com/users/OPAE/following{/other_user}","gists_url":"https://api.github.com/users/OPAE/gists{/gist_id}","starred_url":"https://api.github.com/users/OPAE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OPAE/subscriptions","organizations_url":"https://api.github.com/users/OPAE/orgs","repos_url":"https://api.github.com/users/OPAE/repos","events_url":"https://api.github.com/users/OPAE/events{/privacy}","received_events_url":"https://api.github.com/users/OPAE/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OPAE/opae-sdk","description":"Open Programmable Acceleration Engine","fork":false,"url":"https://api.github.com/repos/OPAE/opae-sdk","forks_url":"https://api.github.com/repos/OPAE/opae-sdk/forks","keys_url":"https://api.github.com/repos/OPAE/opae-sdk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OPAE/opae-sdk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OPAE/opae-sdk/teams","hooks_url":"https://api.github.com/repos/OPAE/opae-sdk/hooks","issue_events_url":"https://api.github.com/repos/OPAE/opae-sdk/issues/events{/number}","events_url":"https://api.github.com/repos/OPAE/opae-sdk/events","assignees_url":"https://api.github.com/repos/OPAE/opae-sdk/assignees{/user}","branches_url":"https://api.github.com/repos/OPAE/opae-sdk/branches{/branch}","tags_url":"https://api.github.com/repos/OPAE/opae-sdk/tags","blobs_url":"https://api.github.com/repos/OPAE/opae-sdk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OPAE/opae-sdk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OPAE/opae-sdk/git/refs{/sha}","trees_url":"https://api.github.com/repos/OPAE/opae-sdk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OPAE/opae-sdk/statuses/{sha}","languages_url":"https://api.github.com/repos/OPAE/opae-sdk/languages","stargazers_url":"https://api.github.com/repos/OPAE/opae-sdk/stargazers","contributors_url":"https://api.github.com/repos/OPAE/opae-sdk/contributors","subscribers_url":"https://api.github.com/repos/OPAE/opae-sdk/subscribers","subscription_url":"https://api.github.com/repos/OPAE/opae-sdk/subscription","commits_url":"https://api.github.com/repos/OPAE/opae-sdk/commits{/sha}","git_commits_url":"https://api.github.com/repos/OPAE/opae-sdk/git/commits{/sha}","comments_url":"https://api.github.com/repos/OPAE/opae-sdk/comments{/number}","issue_comment_url":"https://api.github.com/repos/OPAE/opae-sdk/issues/comments{/number}","contents_url":"https://api.github.com/repos/OPAE/opae-sdk/contents/{+path}","compare_url":"https://api.github.com/repos/OPAE/opae-sdk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OPAE/opae-sdk/merges","archive_url":"https://api.github.com/repos/OPAE/opae-sdk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OPAE/opae-sdk/downloads","issues_url":"https://api.github.com/repos/OPAE/opae-sdk/issues{/number}","pulls_url":"https://api.github.com/repos/OPAE/opae-sdk/pulls{/number}","milestones_url":"https://api.github.com/repos/OPAE/opae-sdk/milestones{/number}","notifications_url":"https://api.github.com/repos/OPAE/opae-sdk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OPAE/opae-sdk/labels{/name}","releases_url":"https://api.github.com/repos/OPAE/opae-sdk/releases{/id}","deployments_url":"https://api.github.com/repos/OPAE/opae-sdk/deployments","created_at":"2017-09-01T07:00:50Z","updated_at":"2018-09-08T07:57:22Z","pushed_at":"2018-09-10T21:37:03Z","git_url":"git://github.com/OPAE/opae-sdk.git","ssh_url":"git@github.com:OPAE/opae-sdk.git","clone_url":"https://github.com/OPAE/opae-sdk.git","svn_url":"https://github.com/OPAE/opae-sdk","homepage":"https://01.org/OPAE","size":7402,"stargazers_count":115,"watchers_count":115,"language":"Verilog","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":34,"mirror_url":null,"archived":false,"open_issues_count":14,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":34,"open_issues":14,"watchers":115,"default_branch":"master"}},"base":{"label":"OPAE:feature/tests-refactor","ref":"feature/tests-refactor","sha":"5fca3b37b22ca111c5740306d553785fc138b122","user":{"login":"OPAE","id":30705801,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwNzA1ODAx","avatar_url":"https://avatars2.githubusercontent.com/u/30705801?v=4","gravatar_id":"","url":"https://api.github.com/users/OPAE","html_url":"https://github.com/OPAE","followers_url":"https://api.github.com/users/OPAE/followers","following_url":"https://api.github.com/users/OPAE/following{/other_user}","gists_url":"https://api.github.com/users/OPAE/gists{/gist_id}","starred_url":"https://api.github.com/users/OPAE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OPAE/subscriptions","organizations_url":"https://api.github.com/users/OPAE/orgs","repos_url":"https://api.github.com/users/OPAE/repos","events_url":"https://api.github.com/users/OPAE/events{/privacy}","received_events_url":"https://api.github.com/users/OPAE/received_events","type":"Organization","site_admin":false},"repo":{"id":102083635,"node_id":"MDEwOlJlcG9zaXRvcnkxMDIwODM2MzU=","name":"opae-sdk","full_name":"OPAE/opae-sdk","owner":{"login":"OPAE","id":30705801,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwNzA1ODAx","avatar_url":"https://avatars2.githubusercontent.com/u/30705801?v=4","gravatar_id":"","url":"https://api.github.com/users/OPAE","html_url":"https://github.com/OPAE","followers_url":"https://api.github.com/users/OPAE/followers","following_url":"https://api.github.com/users/OPAE/following{/other_user}","gists_url":"https://api.github.com/users/OPAE/gists{/gist_id}","starred_url":"https://api.github.com/users/OPAE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OPAE/subscriptions","organizations_url":"https://api.github.com/users/OPAE/orgs","repos_url":"https://api.github.com/users/OPAE/repos","events_url":"https://api.github.com/users/OPAE/events{/privacy}","received_events_url":"https://api.github.com/users/OPAE/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OPAE/opae-sdk","description":"Open Programmable Acceleration Engine","fork":false,"url":"https://api.github.com/repos/OPAE/opae-sdk","forks_url":"https://api.github.com/repos/OPAE/opae-sdk/forks","keys_url":"https://api.github.com/repos/OPAE/opae-sdk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OPAE/opae-sdk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OPAE/opae-sdk/teams","hooks_url":"https://api.github.com/repos/OPAE/opae-sdk/hooks","issue_events_url":"https://api.github.com/repos/OPAE/opae-sdk/issues/events{/number}","events_url":"https://api.github.com/repos/OPAE/opae-sdk/events","assignees_url":"https://api.github.com/repos/OPAE/opae-sdk/assignees{/user}","branches_url":"https://api.github.com/repos/OPAE/opae-sdk/branches{/branch}","tags_url":"https://api.github.com/repos/OPAE/opae-sdk/tags","blobs_url":"https://api.github.com/repos/OPAE/opae-sdk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OPAE/opae-sdk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OPAE/opae-sdk/git/refs{/sha}","trees_url":"https://api.github.com/repos/OPAE/opae-sdk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OPAE/opae-sdk/statuses/{sha}","languages_url":"https://api.github.com/repos/OPAE/opae-sdk/languages","stargazers_url":"https://api.github.com/repos/OPAE/opae-sdk/stargazers","contributors_url":"https://api.github.com/repos/OPAE/opae-sdk/contributors","subscribers_url":"https://api.github.com/repos/OPAE/opae-sdk/subscribers","subscription_url":"https://api.github.com/repos/OPAE/opae-sdk/subscription","commits_url":"https://api.github.com/repos/OPAE/opae-sdk/commits{/sha}","git_commits_url":"https://api.github.com/repos/OPAE/opae-sdk/git/commits{/sha}","comments_url":"https://api.github.com/repos/OPAE/opae-sdk/comments{/number}","issue_comment_url":"https://api.github.com/repos/OPAE/opae-sdk/issues/comments{/number}","contents_url":"https://api.github.com/repos/OPAE/opae-sdk/contents/{+path}","compare_url":"https://api.github.com/repos/OPAE/opae-sdk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OPAE/opae-sdk/merges","archive_url":"https://api.github.com/repos/OPAE/opae-sdk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OPAE/opae-sdk/downloads","issues_url":"https://api.github.com/repos/OPAE/opae-sdk/issues{/number}","pulls_url":"https://api.github.com/repos/OPAE/opae-sdk/pulls{/number}","milestones_url":"https://api.github.com/repos/OPAE/opae-sdk/milestones{/number}","notifications_url":"https://api.github.com/repos/OPAE/opae-sdk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OPAE/opae-sdk/labels{/name}","releases_url":"https://api.github.com/repos/OPAE/opae-sdk/releases{/id}","deployments_url":"https://api.github.com/repos/OPAE/opae-sdk/deployments","created_at":"2017-09-01T07:00:50Z","updated_at":"2018-09-08T07:57:22Z","pushed_at":"2018-09-10T21:37:03Z","git_url":"git://github.com/OPAE/opae-sdk.git","ssh_url":"git@github.com:OPAE/opae-sdk.git","clone_url":"https://github.com/OPAE/opae-sdk.git","svn_url":"https://github.com/OPAE/opae-sdk","homepage":"https://01.org/OPAE","size":7402,"stargazers_count":115,"watchers_count":115,"language":"Verilog","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":34,"mirror_url":null,"archived":false,"open_issues_count":14,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":34,"open_issues":14,"watchers":115,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/OPAE/opae-sdk/pulls/652"},"html":{"href":"https://github.com/OPAE/opae-sdk/pull/652"},"issue":{"href":"https://api.github.com/repos/OPAE/opae-sdk/issues/652"},"comments":{"href":"https://api.github.com/repos/OPAE/opae-sdk/issues/652/comments"},"review_comments":{"href":"https://api.github.com/repos/OPAE/opae-sdk/pulls/652/comments"},"review_comment":{"href":"https://api.github.com/repos/OPAE/opae-sdk/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OPAE/opae-sdk/pulls/652/commits"},"statuses":{"href":"https://api.github.com/repos/OPAE/opae-sdk/statuses/54fe9b82cf8c5aa0e7a357117c083c71338a05b5"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"ibarraza"}}