1*dfc6aa5cSAndroid Build Coastguard Worker /*
2*dfc6aa5cSAndroid Build Coastguard Worker * Copyright 2020 The Chromium Authors. All Rights Reserved.
3*dfc6aa5cSAndroid Build Coastguard Worker *
4*dfc6aa5cSAndroid Build Coastguard Worker * This software is provided 'as-is', without any express or implied
5*dfc6aa5cSAndroid Build Coastguard Worker * warranty. In no event will the authors be held liable for any damages
6*dfc6aa5cSAndroid Build Coastguard Worker * arising from the use of this software.
7*dfc6aa5cSAndroid Build Coastguard Worker *
8*dfc6aa5cSAndroid Build Coastguard Worker * Permission is granted to anyone to use this software for any purpose,
9*dfc6aa5cSAndroid Build Coastguard Worker * including commercial applications, and to alter it and redistribute it
10*dfc6aa5cSAndroid Build Coastguard Worker * freely, subject to the following restrictions:
11*dfc6aa5cSAndroid Build Coastguard Worker *
12*dfc6aa5cSAndroid Build Coastguard Worker * 1. The origin of this software must not be misrepresented; you must not
13*dfc6aa5cSAndroid Build Coastguard Worker * claim that you wrote the original software. If you use this software
14*dfc6aa5cSAndroid Build Coastguard Worker * in a product, an acknowledgment in the product documentation would be
15*dfc6aa5cSAndroid Build Coastguard Worker * appreciated but is not required.
16*dfc6aa5cSAndroid Build Coastguard Worker * 2. Altered source versions must be plainly marked as such, and must not be
17*dfc6aa5cSAndroid Build Coastguard Worker * misrepresented as being the original software.
18*dfc6aa5cSAndroid Build Coastguard Worker * 3. This notice may not be removed or altered from any source distribution.
19*dfc6aa5cSAndroid Build Coastguard Worker */
20*dfc6aa5cSAndroid Build Coastguard Worker
21*dfc6aa5cSAndroid Build Coastguard Worker #include "base/strings/utf_string_conversions.h"
22*dfc6aa5cSAndroid Build Coastguard Worker #include "gtest-utils.h"
23*dfc6aa5cSAndroid Build Coastguard Worker
24*dfc6aa5cSAndroid Build Coastguard Worker #if defined(OS_WIN)
GetTargetDirectory()25*dfc6aa5cSAndroid Build Coastguard Worker std::wstring GetTargetDirectory() {
26*dfc6aa5cSAndroid Build Coastguard Worker base::FilePath path;
27*dfc6aa5cSAndroid Build Coastguard Worker base::PathService::Get(base::DIR_CURRENT, &path);
28*dfc6aa5cSAndroid Build Coastguard Worker return base::UTF8ToWide(path.MaybeAsASCII());
29*dfc6aa5cSAndroid Build Coastguard Worker }
30*dfc6aa5cSAndroid Build Coastguard Worker #else
GetTargetDirectory()31*dfc6aa5cSAndroid Build Coastguard Worker std::string GetTargetDirectory() {
32*dfc6aa5cSAndroid Build Coastguard Worker #if defined(ANDROID)
33*dfc6aa5cSAndroid Build Coastguard Worker return "/sdcard";
34*dfc6aa5cSAndroid Build Coastguard Worker #else
35*dfc6aa5cSAndroid Build Coastguard Worker base::FilePath path;
36*dfc6aa5cSAndroid Build Coastguard Worker base::PathService::Get(base::DIR_CURRENT, &path);
37*dfc6aa5cSAndroid Build Coastguard Worker return path.MaybeAsASCII();
38*dfc6aa5cSAndroid Build Coastguard Worker #endif
39*dfc6aa5cSAndroid Build Coastguard Worker }
40*dfc6aa5cSAndroid Build Coastguard Worker #endif
41*dfc6aa5cSAndroid Build Coastguard Worker
GetTestFilePath(base::FilePath * path,const std::string filename)42*dfc6aa5cSAndroid Build Coastguard Worker void GetTestFilePath(base::FilePath* path, const std::string filename) {
43*dfc6aa5cSAndroid Build Coastguard Worker ASSERT_TRUE(base::PathService::Get(base::DIR_SRC_TEST_DATA_ROOT, path));
44*dfc6aa5cSAndroid Build Coastguard Worker *path = path->AppendASCII("third_party");
45*dfc6aa5cSAndroid Build Coastguard Worker *path = path->AppendASCII("libjpeg_turbo");
46*dfc6aa5cSAndroid Build Coastguard Worker *path = path->AppendASCII("testimages");
47*dfc6aa5cSAndroid Build Coastguard Worker *path = path->AppendASCII(filename);
48*dfc6aa5cSAndroid Build Coastguard Worker ASSERT_TRUE(base::PathExists(*path));
49*dfc6aa5cSAndroid Build Coastguard Worker }
50*dfc6aa5cSAndroid Build Coastguard Worker
CompareFileAndMD5(const base::FilePath & path,const std::string expected_md5)51*dfc6aa5cSAndroid Build Coastguard Worker bool CompareFileAndMD5(const base::FilePath& path,
52*dfc6aa5cSAndroid Build Coastguard Worker const std::string expected_md5) {
53*dfc6aa5cSAndroid Build Coastguard Worker // Read the output file and compute the MD5.
54*dfc6aa5cSAndroid Build Coastguard Worker std::string output;
55*dfc6aa5cSAndroid Build Coastguard Worker if (!base::ReadFileToString(path, &output)) {
56*dfc6aa5cSAndroid Build Coastguard Worker return false;
57*dfc6aa5cSAndroid Build Coastguard Worker }
58*dfc6aa5cSAndroid Build Coastguard Worker const std::string md5 = base::MD5String(output);
59*dfc6aa5cSAndroid Build Coastguard Worker return expected_md5 == md5;
60*dfc6aa5cSAndroid Build Coastguard Worker }
61