| Index: url/gurl_test_main.cc
|
| ===================================================================
|
| --- url/gurl_test_main.cc (revision 0)
|
| +++ url/gurl_test_main.cc (revision 0)
|
| @@ -0,0 +1,102 @@
|
| +// Copyright 2007, Google Inc.
|
| +// All rights reserved.
|
| +//
|
| +// Redistribution and use in source and binary forms, with or without
|
| +// modification, are permitted provided that the following conditions are
|
| +// met:
|
| +//
|
| +// * Redistributions of source code must retain the above copyright
|
| +// notice, this list of conditions and the following disclaimer.
|
| +// * Redistributions in binary form must reproduce the above
|
| +// copyright notice, this list of conditions and the following disclaimer
|
| +// in the documentation and/or other materials provided with the
|
| +// distribution.
|
| +// * Neither the name of Google Inc. nor the names of its
|
| +// contributors may be used to endorse or promote products derived from
|
| +// this software without specific prior written permission.
|
| +//
|
| +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| +
|
| +#include "build/build_config.h"
|
| +
|
| +#if defined(OS_WIN)
|
| +#include <windows.h>
|
| +#endif
|
| +
|
| +#include <string>
|
| +
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "unicode/putil.h"
|
| +#include "unicode/udata.h"
|
| +
|
| +#define ICU_UTIL_DATA_SHARED 1
|
| +#define ICU_UTIL_DATA_STATIC 2
|
| +
|
| +#ifndef ICU_UTIL_DATA_IMPL
|
| +
|
| +#if defined(OS_WIN)
|
| +#define ICU_UTIL_DATA_IMPL ICU_UTIL_DATA_SHARED
|
| +#elif defined(OS_MACOSX)
|
| +#define ICU_UTIL_DATA_IMPL ICU_UTIL_DATA_STATIC
|
| +#elif defined(OS_LINUX)
|
| +#define ICU_UTIL_DATA_IMPL ICU_UTIL_DATA_FILE
|
| +#endif
|
| +
|
| +#endif // ICU_UTIL_DATA_IMPL
|
| +
|
| +#if defined(OS_WIN)
|
| +#define ICU_UTIL_DATA_SYMBOL "icudt" U_ICU_VERSION_SHORT "_dat"
|
| +#define ICU_UTIL_DATA_SHARED_MODULE_NAME "icudt" U_ICU_VERSION_SHORT ".dll"
|
| +#endif
|
| +
|
| +bool InitializeICU() {
|
| +#if (ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_SHARED)
|
| + // We expect to find the ICU data module alongside the current module.
|
| + // Because the module name is ASCII-only, "A" API should be safe.
|
| + // Chrome's copy of ICU dropped a version number XX from icudt dll,
|
| + // but 3rd-party embedders may need it. So, we try both.
|
| + HMODULE module = LoadLibraryA("icudt.dll");
|
| + if (!module) {
|
| + module = LoadLibraryA(ICU_UTIL_DATA_SHARED_MODULE_NAME);
|
| + if (!module)
|
| + return false;
|
| + }
|
| +
|
| + FARPROC addr = GetProcAddress(module, ICU_UTIL_DATA_SYMBOL);
|
| + if (!addr)
|
| + return false;
|
| +
|
| + UErrorCode err = U_ZERO_ERROR;
|
| + udata_setCommonData(reinterpret_cast<void*>(addr), &err);
|
| + return err == U_ZERO_ERROR;
|
| +#elif (ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_STATIC)
|
| + // Mac bundles the ICU data in.
|
| + return true;
|
| +#elif (ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_FILE)
|
| + // We expect to find the ICU data module alongside the current module.
|
| + u_setDataDirectory(".");
|
| + // Only look for the packaged data file;
|
| + // the default behavior is to look for individual files.
|
| + UErrorCode err = U_ZERO_ERROR;
|
| + udata_setFileAccess(UDATA_ONLY_PACKAGES, &err);
|
| + return err == U_ZERO_ERROR;
|
| +#endif
|
| +}
|
| +
|
| +int main(int argc, char **argv) {
|
| + ::testing::InitGoogleTest(&argc, argv);
|
| +
|
| + InitializeICU();
|
| +
|
| + return RUN_ALL_TESTS();
|
| +}
|
|
|
| Property changes on: url/gurl_test_main.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|