Chromium Code Reviews| Index: chrome/test/data/nacl/manifest_file/irt_manifest_file_test.cc |
| diff --git a/chrome/test/data/nacl/manifest_file/irt_manifest_file_test.cc b/chrome/test/data/nacl/manifest_file/irt_manifest_file_test.cc |
| index fae14b31d8e72b1f816df85114dd42ee4ad3e7d2..ab1f352d1d4d2c55e1c74914ab518ecab17ac549 100644 |
| --- a/chrome/test/data/nacl/manifest_file/irt_manifest_file_test.cc |
| +++ b/chrome/test/data/nacl/manifest_file/irt_manifest_file_test.cc |
| @@ -11,8 +11,9 @@ |
| #include <stdio.h> |
| #include <string.h> |
| -#include <string> |
| #include <sstream> |
| +#include <string> |
| +#include <vector> |
| #include "native_client/src/untrusted/irt/irt.h" |
| #include "native_client/src/untrusted/nacl/nacl_irt.h" |
| @@ -20,30 +21,30 @@ |
| #include "ppapi/cpp/instance.h" |
| #include "ppapi/cpp/module.h" |
| #include "ppapi/cpp/var.h" |
| +#include "ppapi/cpp/var_array.h" |
| #include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h" |
| -std::string str; |
| -void load_manifest(TYPE_nacl_irt_query *query_func) { |
| +std::vector<std::string> result; |
| + |
| +std::string LoadManifestSuccess(TYPE_nacl_irt_query *query_func) { |
| struct nacl_irt_resource_open nacl_irt_resource_open; |
| if (sizeof(nacl_irt_resource_open) != |
| (*query_func)( |
| NACL_IRT_RESOURCE_OPEN_v0_1, |
| &nacl_irt_resource_open, |
| sizeof(nacl_irt_resource_open))) { |
| - str = "irt manifest api not found"; |
| - return; |
| + return "irt manifest api not found"; |
| } |
| int desc; |
| int error; |
| error = nacl_irt_resource_open.open_resource("test_file", &desc); |
| if (0 != error) { |
| - str = "Can't open file"; |
| printf("Can't open file, error=%d", error); |
| - return; |
| + return "Can't open file"; |
| } |
| - str = "File Contents:\n"; |
| + std::string str = "File Contents:\n"; |
| char buffer[4096]; |
| int len; |
| @@ -81,7 +82,43 @@ void load_manifest(TYPE_nacl_irt_query *query_func) { |
| str += buffer; |
| } |
| printf("file loaded: %s\n", str.c_str()); |
| - return; |
| + return str; |
| +} |
| + |
| +std::string LoadManifestNonExistentEntry( |
| + TYPE_nacl_irt_query *query_func) { |
| + struct nacl_irt_resource_open nacl_irt_resource_open; |
| + if (sizeof(nacl_irt_resource_open) != |
| + (*query_func)( |
| + NACL_IRT_RESOURCE_OPEN_v0_1, |
| + &nacl_irt_resource_open, |
| + sizeof(nacl_irt_resource_open))) { |
| + return "irt manifest api not found"; |
| + } |
| + |
| + int desc; |
| + int error = nacl_irt_resource_open.open_resource("non_existent_entry", &desc); |
| + char buf[80]; |
| + snprintf(buf, sizeof(buf), "open_resource() result: %d", error); |
|
Mark Seaborn
2014/05/29 16:55:48
Rather than always formatting the numeric errno me
hidehiko
2014/05/30 04:49:58
Done.
|
| + return std::string(buf); |
| +} |
| + |
| +std::string LoadManifestNonExistentFile( |
| + TYPE_nacl_irt_query *query_func) { |
| + struct nacl_irt_resource_open nacl_irt_resource_open; |
| + if (sizeof(nacl_irt_resource_open) != |
| + (*query_func)( |
| + NACL_IRT_RESOURCE_OPEN_v0_1, |
| + &nacl_irt_resource_open, |
| + sizeof(nacl_irt_resource_open))) { |
| + return "irt manifest api not found"; |
| + } |
| + |
| + int desc; |
| + int error = nacl_irt_resource_open.open_resource("dummy_test_file", &desc); |
| + char buf[80]; |
| + snprintf(buf, sizeof(buf), "open_resource() result: %d", error); |
|
Mark Seaborn
2014/05/29 16:55:48
Same here
hidehiko
2014/05/30 04:49:58
Done.
|
| + return std::string(buf); |
| } |
| class TestInstance : public pp::Instance { |
| @@ -95,7 +132,10 @@ class TestInstance : public pp::Instance { |
| if (var_message.AsString() != "hello") { |
| return; |
| } |
| - pp::Var reply = pp::Var(str); |
| + pp::VarArray reply = pp::VarArray(); |
| + for (size_t i = 0; i < result.size(); ++i) { |
| + reply.Set(i, pp::Var(result[i])); |
| + } |
| PostMessage(reply); |
| } |
| }; |
| @@ -117,7 +157,8 @@ Module* CreateModule() { |
| } |
| int main() { |
| - load_manifest(&__nacl_irt_query); |
| + result.push_back(LoadManifestSuccess(&__nacl_irt_query)); |
| + result.push_back(LoadManifestNonExistentEntry(&__nacl_irt_query)); |
| + result.push_back(LoadManifestNonExistentFile(&__nacl_irt_query)); |
| return PpapiPluginMain(); |
| } |
| - |