aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental
diff options
context:
space:
mode:
authorGravatar caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-09-26 13:00:03 +0000
committerGravatar caryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-09-26 13:00:03 +0000
commitd312804b2198d58276f460c6a85378d2c1b5e548 (patch)
tree89579ffa83a45687490183aed05db888622c596b /experimental
parent9dd78c78214ada184f1ecf7b0ffbed86e3be26eb (diff)
shape ops -- update gyp projects
goodbye cruel world (updating to OS X 10.8) git-svn-id: http://skia.googlecode.com/svn/trunk@5685 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'experimental')
-rw-r--r--experimental/Intersection/AddTestOutput/main.cpp111
1 files changed, 111 insertions, 0 deletions
diff --git a/experimental/Intersection/AddTestOutput/main.cpp b/experimental/Intersection/AddTestOutput/main.cpp
new file mode 100644
index 0000000000..257bba0026
--- /dev/null
+++ b/experimental/Intersection/AddTestOutput/main.cpp
@@ -0,0 +1,111 @@
+#include "SkStream.h"
+#include "SkString.h"
+#include "SkTDArray.h"
+#include <stdio.h>
+
+static bool replace(const char* fun, const char* dir, const char* filename, const char* marker,
+ const char* marker2, const char* replace, size_t replaceLen) {
+ SkString outFileStr(dir);
+ outFileStr.append(filename);
+ SkFILEStream opStreamIn(outFileStr.c_str());
+ if (!opStreamIn.isValid()) {
+ SkDebugf("%s couldn't find %s\n", fun, outFileStr.c_str());
+ return false;
+ }
+ SkTDArray<char> opData;
+ opData.setCount(opStreamIn.getLength());
+ size_t opLen = opData.count();
+ opStreamIn.read(opData.begin(), opLen);
+ opStreamIn.setPath(NULL);
+ SkFILEWStream opStreamOut(outFileStr.c_str());
+ if (!opStreamOut.isValid()) {
+ SkDebugf("%s couldn't open for writing %s\n", fun, outFileStr.c_str());
+ return false;
+ }
+
+ char* opInsert = strstr(opData.begin(), marker);
+ if (!opInsert) {
+ SkDebugf("%s missing marker in %s\n", fun, outFileStr.c_str());
+ return false;
+ }
+ const char* opInsertEnd = opInsert + strlen(marker);
+ if (marker2) {
+ char* opInsert2 = strstr(opInsert, marker2);
+ if (!opInsert2) {
+ SkDebugf("%s missing marker second half in %s\n", fun, outFileStr.c_str());
+ return false;
+ }
+ opInsertEnd = opInsert2 + strlen(marker2);
+ }
+ opStreamOut.write(opData.begin(), opInsert - opData.begin());
+ opStreamOut.write(replace, replaceLen);
+ opStreamOut.write(opInsertEnd, opLen - (opInsertEnd - opData.begin()));
+ opStreamOut.flush();
+ return true;
+}
+
+int main (int argc, char * const argv[]) {
+ if (argc != 2) {
+ SkDebugf("%s expected filename\n", argv[0]);
+ return 0;
+ }
+ const char* dir = "../../experimental/Intersection/";
+ SkString inFileStr;
+ if (argv[1][0] != '/') {
+ inFileStr.append(dir);
+ }
+ inFileStr.append(argv[1]);
+ SkFILEStream inFile(inFileStr.c_str());
+ if (!inFile.isValid()) {
+ SkDebugf("%s couldn't find %s\n", argv[0], argv[1]);
+ return 0;
+ }
+ SkTDArray<char> inData;
+ inData.setCount(inFile.getLength());
+ size_t inLen = inData.count();
+ inFile.read(inData.begin(), inLen);
+ inFile.setPath(NULL);
+ char* insert = strstr(inData.begin(), "\n\n\n");
+ if (!insert) {
+ SkDebugf("%s missing two blank line delimiter in %s\n", argv[0], argv[1]);
+ return 0;
+ }
+ insert += 1; // include first blank line
+ const char opMarker[] =
+ "</div>" "\n"
+ "\n"
+ "<script type=\"text/javascript\">" "\n"
+ "\n"
+ "var testDivs = [" "\n"
+ ;
+ if (!replace(argv[0], dir, "op.htm", opMarker, NULL, inData.begin(),
+ insert - inData.begin())) {
+ return 0;
+ }
+ const char newMarker[] =
+ "static void (*firstTest)() = "
+ ;
+ const char newMarker2[] =
+ ";" "\n"
+ "\n"
+ "static struct {" "\n"
+ " void (*fun)();" "\n"
+ " const char* str;" "\n"
+ "} tests[] = {" "\n"
+ ;
+ if (!replace(argv[0], dir, "SimplifyNew_Test.cpp", newMarker, newMarker2, insert + 2,
+ inLen - (insert - inData.begin()) - 2)) {
+ return 0;
+ }
+ const char simplifyMarker[] =
+ "#if 1 // set to 1 for multiple thread -- no debugging"
+ ;
+ const char simplifyReplace[] =
+ "#if 0 // set to 1 for multiple thread -- no debugging"
+ ;
+ if (!replace(argv[0], dir, "Simplify.cpp", simplifyMarker, NULL, simplifyReplace,
+ sizeof(simplifyReplace) - 1)) {
+ return 0;
+ }
+ return 0;
+}