Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1053)

Unified Diff: ppapi/native_client/tests/nacl_browser/manifest_file/pm_pre_init_manifest_file_test.cc

Issue 133033002: Port manifest query tests from nacl_integration to browser_tests. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/tests/nacl_browser/manifest_file/pm_pre_init_manifest_file_test.cc
diff --git a/ppapi/native_client/tests/nacl_browser/manifest_file/pm_pre_init_manifest_file_test.cc b/ppapi/native_client/tests/nacl_browser/manifest_file/pm_pre_init_manifest_file_test.cc
deleted file mode 100644
index 1339ebc8b3ddb91cadb600ebec0d1e497a1911cc..0000000000000000000000000000000000000000
--- a/ppapi/native_client/tests/nacl_browser/manifest_file/pm_pre_init_manifest_file_test.cc
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-//
-// Post-message based test for simple rpc based access to name services.
-//
-
-#include <string>
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <inttypes.h>
-#include <sys/fcntl.h>
-#include <string.h>
-#include <unistd.h>
-#include <pthread.h>
-
-#include "native_client/src/include/nacl_base.h"
-#include "native_client/src/public/imc_syscalls.h"
-#include "native_client/src/public/name_service.h"
-#include "native_client/src/shared/platform/nacl_sync.h"
-#include "native_client/src/shared/platform/nacl_sync_checked.h"
-#include "native_client/src/shared/platform/nacl_sync_raii.h"
-#include "native_client/src/shared/srpc/nacl_srpc.h"
-
-// TODO(bsy): move weak_ref module to the shared directory
-#include "native_client/src/trusted/weak_ref/weak_ref.h"
-
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/var.h"
-
-#include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h"
-#include "ppapi/native_client/src/trusted/weak_ref/call_on_main_thread.h"
-#include "ppapi/native_client/src/untrusted/nacl_ppapi_util/nacl_ppapi_util.h"
-#include "ppapi/native_client/src/untrusted/nacl_ppapi_util/string_buffer.h"
-
-std::string *manifest_contents = NULL;
-
-void TestManifestContents() {
- nacl::StringBuffer sb;
- int status = -1;
- int manifest;
- struct NaClSrpcChannel manifest_channel;
- struct NaClSrpcChannel ns_channel;
-
- int ns = -1;
- nacl_nameservice(&ns);
- printf("ns = %d\n", ns);
- assert(-1 != ns);
- int connected_socket = imc_connect(ns);
- assert(-1 != connected_socket);
- if (!NaClSrpcClientCtor(&ns_channel, connected_socket)) {
- close(ns);
- sb.Printf("Srpc client channel ctor failed\n");
- manifest_contents = new std::string(sb.ToString());
- return;
- }
- sb.Printf("NaClSrpcClientCtor succeeded\n");
- close(ns);
- // name service lookup for the manifest service descriptor
- if (NACL_SRPC_RESULT_OK !=
- NaClSrpcInvokeBySignature(&ns_channel, NACL_NAME_SERVICE_LOOKUP,
- "ManifestNameService", O_RDWR,
- &status, &manifest) ||
- NACL_NAME_SERVICE_SUCCESS != status) {
- sb.Printf("nameservice lookup failed, status %d\n", status);
- manifest_contents = new std::string(sb.ToString());
- return;
- }
- sb.Printf("Got manifest descriptor %d\n", manifest);
- if (-1 == manifest) {
- manifest_contents = new std::string(sb.ToString());
- return;
- }
-
- // connect to manifest name server
- int manifest_conn = imc_connect(manifest);
- close(manifest);
- sb.Printf("got manifest connection %d\n", manifest_conn);
- if (-1 == manifest_conn) {
- sb.Printf("could not connect\n");
- manifest_contents = new std::string(sb.ToString());
- return;
- }
-
- // build the SRPC connection (do service discovery)
- if (!NaClSrpcClientCtor(&manifest_channel, manifest_conn)) {
- sb.Printf("could not build srpc client\n");
- manifest_contents = new std::string(sb.ToString());
- return;
- }
-
- int desc;
-
- sb.Printf("Invoking name service lookup\n");
- if (NACL_SRPC_RESULT_OK !=
- NaClSrpcInvokeBySignature(&manifest_channel,
- NACL_NAME_SERVICE_LOOKUP,
- "files/test_file", O_RDONLY,
- &status, &desc)) {
- sb.Printf("manifest lookup RPC failed\n");
- NaClSrpcDtor(&manifest_channel);
- manifest_contents = new std::string(sb.ToString());
- return;
- }
-
- sb.DiscardOutput();
- sb.Printf("File Contents:\n");
-
- FILE *iob = fdopen(desc, "r");
- char buffer[4096];
- while (fgets(buffer, sizeof buffer, iob) != NULL) {
- // NB: fgets does not discard the newline nor any carriage return
- // character before that.
- //
- // Note that CR LF is the default end-of-line style for Windows.
- // Furthermore, when the test_file (input data, which happens to
- // be the nmf file) is initially created in a change list, the
- // patch is sent to our try bots as text. This means that when
- // the file arrives, it has CR LF endings instead of the original
- // LF line endings. Since the expected or golden data is
- // (manually) encoded in the HTML file's JavaScript, there will be
- // a mismatch. After submission, the svn property svn:eol-style
- // will be set to LF, so a clean check out should have LF and not
- // CR LF endings, and the tests will pass without CR removal.
- // However -- and there's always a however in long discourses --
- // if the nmf file is edited, say, because the test is being
- // modified, and the modification is being done on a Windows
- // machine, then it is likely that the editor used by the
- // programmer will convert the file to CR LF endings. Which,
- // unfortunatly, implies that the test will mysteriously fail
- // again.
- //
- // To defend against such nonsense, we weaken the test slighty,
- // and just strip the CR if it is present.
- int len = strlen(buffer);
- if (len >= 2 && buffer[len-1] == '\n' && buffer[len-2] == '\r') {
- buffer[len-2] = '\n';
- buffer[len-1] = '\0';
- }
- sb.Printf("%s", buffer);
- }
- fclose(iob); // closed desc
-
- sb.Printf("\n");
- sb.Printf("Opening non-existent file:\n");
- if (NACL_SRPC_RESULT_OK !=
- NaClSrpcInvokeBySignature(&manifest_channel,
- NACL_NAME_SERVICE_LOOKUP,
- "foobar/baz", O_RDONLY,
- &status, &desc)) {
- sb.Printf("bogus manifest lookup RPC failed\n");
- NaClSrpcDtor(&manifest_channel);
- manifest_contents = new std::string(sb.ToString());
- return;
- }
- sb.Printf("Got descriptor %d, status %d\n", desc, status);
- if (-1 != desc) {
- (void) close(desc);
- }
-
- NaClSrpcDtor(&manifest_channel);
- manifest_contents = new std::string(sb.ToString());
-}
-
-class PostStringMessageWrapper
- : public nacl_ppapi::EventThreadWorkStateWrapper<nacl_ppapi::VoidResult> {
- public:
- PostStringMessageWrapper(nacl_ppapi::EventThreadWorkState<
- nacl_ppapi::VoidResult>
- *state,
- const std::string &msg)
- : nacl_ppapi::EventThreadWorkStateWrapper<nacl_ppapi::VoidResult>(
- state),
- msg_(msg) {}
- ~PostStringMessageWrapper();
- const std::string &msg() const { return msg_; }
- private:
- std::string msg_;
-
- DISALLOW_COPY_AND_ASSIGN(PostStringMessageWrapper);
-};
-
-// ---------------------------------------------------------------------------
-
-class MyInstance;
-
-// This object represents one time the page says <embed>.
-class MyInstance : public nacl_ppapi::NaClPpapiPluginInstance {
- public:
- explicit MyInstance(PP_Instance instance);
- virtual ~MyInstance();
- virtual void HandleMessage(const pp::Var& message_data);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MyInstance);
-};
-
-// ---------------------------------------------------------------------------
-
-MyInstance::MyInstance(PP_Instance instance)
- : nacl_ppapi::NaClPpapiPluginInstance(instance) {
-}
-
-MyInstance::~MyInstance() {}
-
-// ---------------------------------------------------------------------------
-
-// HandleMessage gets invoked when postMessage is called on the DOM
-// element associated with this plugin instance. In this case, if we
-// are given a string, we'll post a message back to JavaScript with a
-// reply -- essentially treating this as a string-based RPC.
-void MyInstance::HandleMessage(const pp::Var& message) {
- if (message.is_string()) {
- if (message.AsString() == "manifest_data") {
- PostMessage(*manifest_contents);
- } else {
- fprintf(stderr, "HandleMessage: Unrecognized request \"%s\".\n",
- message.AsString().c_str());
- }
- } else {
- fprintf(stderr, "HandleMessage: message is not a string\n");
- fflush(NULL);
- }
-}
-
-// This object is the global object representing this plugin library as long
-// as it is loaded.
-class MyModule : public pp::Module {
- public:
- MyModule() : pp::Module() {}
- virtual ~MyModule() {}
-
- // Override CreateInstance to create your customized Instance object.
- virtual pp::Instance *CreateInstance(PP_Instance instance);
-
- DISALLOW_COPY_AND_ASSIGN(MyModule);
-};
-
-pp::Instance *MyModule::CreateInstance(PP_Instance pp_instance) {
- MyInstance *instance = new MyInstance(pp_instance);
- fprintf(stderr, "CreateInstance: returning instance %p\n",
- reinterpret_cast<void *>(instance));
-
- return instance;
-}
-
-namespace pp {
-
-// Factory function for your specialization of the Module object.
-Module* CreateModule() {
- fprintf(stderr, "CreateModule invoked\n"); fflush(NULL);
- return new MyModule();
-}
-
-} // namespace pp
-
-int main() {
- NaClSrpcModuleInit();
- TestManifestContents();
- return PpapiPluginMain();
-}

Powered by Google App Engine
This is Rietveld 408576698