aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-24 18:28:57 +0000
committerGravatar scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-24 18:28:57 +0000
commitdbbcaa8983c866187cdca6944717a72461bc8037 (patch)
treeb44d530daa8465ee05a64359ff00ea440b7383a3
parent1bee03704408fad8df334f6193267774bb21231b (diff)
Revert "Add path utils, plus a test for it."
This reverts commit d172374b46cae0bd5d7c024b9848f5bdafcc6a16. This CL broke on Windows. Review URL: https://codereview.chromium.org/15986004 git-svn-id: http://skia.googlecode.com/svn/trunk@9278 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--gm/factory.cpp9
-rw-r--r--gm/gm_expectations.cpp11
-rw-r--r--gm/gm_expectations.h10
-rw-r--r--gm/gmmain.cpp2
-rw-r--r--gm/image.cpp3
-rw-r--r--gyp/tests.gyp1
-rw-r--r--include/core/SkOSFile.h23
-rw-r--r--src/utils/SkOSFile.cpp21
-rw-r--r--tests/OSPathTest.cpp77
-rw-r--r--tools/skimage_main.cpp29
10 files changed, 50 insertions, 136 deletions
diff --git a/gm/factory.cpp b/gm/factory.cpp
index a7356a96e3..4538cda894 100644
--- a/gm/factory.cpp
+++ b/gm/factory.cpp
@@ -11,7 +11,6 @@
#include "SkData.h"
#include "SkImageDecoder.h"
#include "SkLruImageCache.h"
-#include "SkOSFile.h"
#include "SkStream.h"
namespace skiagm {
@@ -25,9 +24,13 @@ public:
protected:
virtual void onOnceBeforeDraw() SK_OVERRIDE {
+ SkString filename(INHERITED::gResourcePath);
+ if (!filename.endsWith("/") && !filename.endsWith("\\")) {
+ filename.append("/");
+ }
+
// Copyright-free file from http://openclipart.org/detail/29213/paper-plane-by-ddoo
- SkString filename = SkOSPath::SkPathJoin(INHERITED::gResourcePath.c_str(),
- "plane.png");
+ filename.append("plane.png");
SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(filename.c_str()));
if (NULL != stream.get()) {
diff --git a/gm/gm_expectations.cpp b/gm/gm_expectations.cpp
index 46cfea1236..8138af7890 100644
--- a/gm/gm_expectations.cpp
+++ b/gm/gm_expectations.cpp
@@ -37,6 +37,15 @@ namespace skiagm {
va_end(args);
}
+ SkString SkPathJoin(const char *rootPath, const char *relativePath) {
+ SkString result(rootPath);
+ if (!result.endsWith(SkPATH_SEPARATOR)) {
+ result.appendUnichar(SkPATH_SEPARATOR);
+ }
+ result.append(relativePath);
+ return result;
+ }
+
Json::Value CreateJsonTree(Json::Value expectedResults,
Json::Value actualResultsFailed,
Json::Value actualResultsFailureIgnored,
@@ -185,7 +194,7 @@ namespace skiagm {
// IndividualImageExpectationsSource class...
Expectations IndividualImageExpectationsSource::get(const char *testName) {
- SkString path = SkOSPath::SkPathJoin(fRootDir.c_str(), testName);
+ SkString path = SkPathJoin(fRootDir.c_str(), testName);
SkBitmap referenceBitmap;
bool decodedReferenceBitmap =
SkImageDecoder::DecodeFile(path.c_str(), &referenceBitmap,
diff --git a/gm/gm_expectations.h b/gm/gm_expectations.h
index 55122d4ab8..8efb986713 100644
--- a/gm/gm_expectations.h
+++ b/gm/gm_expectations.h
@@ -32,6 +32,16 @@ namespace skiagm {
void gm_fprintf(FILE *stream, const char format[], ...);
+ /**
+ * Assembles rootPath and relativePath into a single path, like this:
+ * rootPath/relativePath
+ *
+ * Uses SkPATH_SEPARATOR, to work on all platforms.
+ *
+ * TODO(epoger): This should probably move into SkOSFile.h
+ */
+ SkString SkPathJoin(const char *rootPath, const char *relativePath);
+
Json::Value CreateJsonTree(Json::Value expectedResults,
Json::Value actualResultsFailed,
Json::Value actualResultsFailureIgnored,
diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp
index 3c4f27dafb..3481cf8940 100644
--- a/gm/gmmain.cpp
+++ b/gm/gmmain.cpp
@@ -222,7 +222,7 @@ public:
filename.append(renderModeDescriptor);
filename.appendUnichar('.');
filename.append(suffix);
- return SkOSPath::SkPathJoin(path, filename.c_str());
+ return SkPathJoin(path, filename.c_str());
}
/* since PNG insists on unpremultiplying our alpha, we take no
diff --git a/gm/image.cpp b/gm/image.cpp
index 71fe0e176f..8578e510ba 100644
--- a/gm/image.cpp
+++ b/gm/image.cpp
@@ -31,9 +31,6 @@ static SkData* fileToData(const char path[]) {
}
static void drawJpeg(SkCanvas* canvas, const SkISize& size) {
- // TODO: Make this draw a file that is checked in, so it can
- // be exercised on machines other than mike's. Will require a
- // rebaseline.
SkAutoDataUnref data(fileToData("/Users/mike/Downloads/skia.google.jpeg"));
SkImage* image = SkImage::NewEncodedData(data);
if (image) {
diff --git a/gyp/tests.gyp b/gyp/tests.gyp
index 10a4ba45e7..a15671d90c 100644
--- a/gyp/tests.gyp
+++ b/gyp/tests.gyp
@@ -75,7 +75,6 @@
'../tests/Matrix44Test.cpp',
'../tests/MemsetTest.cpp',
'../tests/MetaDataTest.cpp',
- '../tests/OSPathTest.cpp',
'../tests/PackBitsTest.cpp',
'../tests/PaintTest.cpp',
'../tests/ParsePathTest.cpp',
diff --git a/include/core/SkOSFile.h b/include/core/SkOSFile.h
index 8564d43027..257b66ae67 100644
--- a/include/core/SkOSFile.h
+++ b/include/core/SkOSFile.h
@@ -105,27 +105,4 @@ private:
uint16_t* fStr;
};
-/**
- * Functions for modifying SkStrings which represent paths on the filesystem.
- */
-class SkOSPath {
-public:
- /**
- * Assembles rootPath and relativePath into a single path, like this:
- * rootPath/relativePath
- *
- * Uses SkPATH_SEPARATOR, to work on all platforms.
- */
- static SkString SkPathJoin(const char *rootPath, const char *relativePath);
-
- /**
- * Return the name of the file, ignoring the directory structure.
- * Behaves like python's os.path.basename. If the fullPath is
- * /dir/subdir/, an empty string is returned.
- * @param fullPath Full path to the file.
- * @return SkString The basename of the file - anything beyond the
- * final slash, or the full name if there is no slash.
- */
- static SkString SkBasename(const char* fullPath);
-};
#endif
diff --git a/src/utils/SkOSFile.cpp b/src/utils/SkOSFile.cpp
index 73cc147a24..478a0cc448 100644
--- a/src/utils/SkOSFile.cpp
+++ b/src/utils/SkOSFile.cpp
@@ -226,25 +226,4 @@ bool SkOSFile::Iter::next(SkString* name, bool getDir)
return false;
}
-SkString SkOSPath::SkPathJoin(const char *rootPath, const char *relativePath) {
- SkString result(rootPath);
- if (!result.endsWith(SkPATH_SEPARATOR)) {
- result.appendUnichar(SkPATH_SEPARATOR);
- }
- result.append(relativePath);
- return result;
-}
-
-SkString SkOSPath::SkBasename(const char* fullPath) {
- if (!fullPath) {
- return SkString();
- }
- const char* filename = strrchr(fullPath, SkPATH_SEPARATOR);
- if (NULL == filename) {
- filename = fullPath;
- } else {
- ++filename;
- }
- return SkString(filename);
-}
#endif
diff --git a/tests/OSPathTest.cpp b/tests/OSPathTest.cpp
deleted file mode 100644
index 96ff8a712d..0000000000
--- a/tests/OSPathTest.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright 2013 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "SkString.h"
-#include "SkOSFile.h"
-#include "Test.h"
-
-/**
- * Test SkPathJoin and SkBasename.
- * Will use SkPathJoin to append filename to dir, test that it works correctly,
- * and tests using SkBasename on the result.
- * @param reporter Reporter for test conditions.
- * @param dir String representing the path to a folder. May or may not
- * end with SkPATH_SEPARATOR.
- * @param filename String representing the basename of a file. Must NOT
- * contain SkPATH_SEPARATOR.
- */
-static void test_dir_with_file(skiatest::Reporter* reporter, SkString dir,
- SkString filename) {
- // If filename contains SkPATH_SEPARATOR, the tests will fail.
- SkASSERT(!filename.contains(SkPATH_SEPARATOR));
-
- // Tests for SkOSPath::SkPathJoin and SkOSPath::SkBasename
-
- // fullName should be "dir<SkPATH_SEPARATOR>file"
- SkString fullName = SkOSPath::SkPathJoin(dir.c_str(), filename.c_str());
-
- // fullName should be the combined size of dir and file, plus one if
- // dir did not include the final path separator.
- size_t expectedSize = dir.size() + filename.size();
- if (!dir.endsWith(SkPATH_SEPARATOR)) {
- expectedSize++;
- }
- REPORTER_ASSERT(reporter, fullName.size() == expectedSize);
-
- SkString basename = SkOSPath::SkBasename(fullName.c_str());
-
- // basename should be the same as filename
- REPORTER_ASSERT(reporter, basename.equals(filename));
-
- // basename will not contain a path separator
- REPORTER_ASSERT(reporter, !basename.contains(SkPATH_SEPARATOR));
-
- // Now take the basename of filename, which should be the same as filename.
- basename = SkOSPath::SkBasename(filename.c_str());
- REPORTER_ASSERT(reporter, basename.equals(filename));
-}
-
-static void test_os_path_utils_tests(skiatest::Reporter* reporter) {
- SkString dir("dir");
- SkString filename("file");
- test_dir_with_file(reporter, dir, filename);
-
- // Now make sure this works with a path separator at the end of dir.
- dir.appendUnichar(SkPATH_SEPARATOR);
- test_dir_with_file(reporter, dir, filename);
-
- // Test with a sub directory.
- dir.append("subDir");
- test_dir_with_file(reporter, dir, filename);
-
- // Basename of a directory with a path separator at the end is empty.
- dir.appendUnichar(SkPATH_SEPARATOR);
- SkString baseOfDir = SkOSPath::SkBasename(dir.c_str());
- REPORTER_ASSERT(reporter, baseOfDir.size() == 0);
-
- // Basename of NULL is an empty string.
- SkString empty = SkOSPath::SkBasename(NULL);
- REPORTER_ASSERT(reporter, empty.size() == 0);
-}
-
-#include "TestClassDef.h"
-DEFINE_TESTCLASS("OSPath", OSPathTestClass, test_os_path_utils_tests)
diff --git a/tools/skimage_main.cpp b/tools/skimage_main.cpp
index 98cde5044c..f52cf32217 100644
--- a/tools/skimage_main.cpp
+++ b/tools/skimage_main.cpp
@@ -69,10 +69,27 @@ static SkImageDecoder::Format guess_format_from_suffix(const char suffix[]) {
return SkImageDecoder::kUnknown_Format;
}
+/**
+ * Return the name of the file, ignoring the directory structure.
+ * Does not create a new string.
+ * @param fullPath Full path to the file.
+ * @return string The basename of the file - anything beyond the final slash, or the full name
+ * if there is no slash.
+ * TODO: Might this be useful as a utility function in SkOSFile? Would it be more appropriate to
+ * create a new string?
+ */
+static const char* SkBasename(const char* fullPath) {
+ const char* filename = strrchr(fullPath, SkPATH_SEPARATOR);
+ if (NULL == filename || *++filename == '\0') {
+ filename = fullPath;
+ }
+ return filename;
+}
+
static void make_outname(SkString* dst, const char outDir[], const char src[],
const char suffix[]) {
- SkString basename = SkOSPath::SkBasename(src);
- dst->set(SkOSPath::SkPathJoin(outDir, basename.c_str()));
+ const char* basename = SkBasename(src);
+ dst->set(skiagm::SkPathJoin(outDir, basename));
if (!dst->endsWith(suffix)) {
const char* cstyleDst = dst->c_str();
const char* dot = strrchr(cstyleDst, '.');
@@ -255,7 +272,8 @@ static bool write_subset(const char* writePath, const char* filename, const char
SkASSERT(bitmapFromDecodeSubset != NULL);
// Create a subdirectory to hold the results of decodeSubset.
- SkString dir = SkOSPath::SkPathJoin(writePath, "subsets");
+ // TODO: Move SkPathJoin into SkOSFile.h
+ SkString dir = skiagm::SkPathJoin(writePath, "subsets");
if (!sk_mkdir(dir.c_str())) {
gFailedSubsetDecodes.push_back().printf("Successfully decoded %s from %s, but failed to "
"create a directory to write to.", subsetDim,
@@ -280,7 +298,7 @@ static bool write_subset(const char* writePath, const char* filename, const char
return false;
}
- SkString dirExtracted = SkOSPath::SkPathJoin(writePath, "extracted");
+ SkString dirExtracted = skiagm::SkPathJoin(writePath, "extracted");
if (!sk_mkdir(dirExtracted.c_str())) {
gFailedSubsetDecodes.push_back().printf("Successfully decoded %s from %s, but failed to "
"create a directory for extractSubset comparison.",
@@ -317,8 +335,7 @@ static void decodeFileAndWrite(const char srcPath[], const SkString* writePath)
}
// Create a string representing just the filename itself, for use in json expectations.
- SkString basename = SkOSPath::SkBasename(srcPath);
- const char* filename = basename.c_str();
+ const char* filename = SkBasename(srcPath);
if (compare_to_expectations_if_necessary(bitmap, filename, &gDecodeFailures)) {
gSuccessfulDecodes.push_back().printf("%s [%d %d]", srcPath, bitmap.width(),