From 9a7b2ae254dd3be93673c0fec0010a48e8f17f86 Mon Sep 17 00:00:00 2001 From: Nick Maliwacki Date: Fri, 21 Sep 2018 23:28:43 -0700 Subject: [PATCH] add rotate test (#14) --- build.sh | 4 ++++ tests/rotate/FriedrichNietzsche.png | Bin 0 -> 39796 bytes tests/rotate/node_header.js | 19 ++++++++++++++++--- 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 tests/rotate/FriedrichNietzsche.png diff --git a/build.sh b/build.sh index 459bfaf..f7f9aa0 100644 --- a/build.sh +++ b/build.sh @@ -5,6 +5,10 @@ export CFLAGS="-O3" export CXXFLAGS="$CFLAGS" MAKE_FLAGS="-s BINARYEN_TRAP_MODE=clamp -s ALLOW_MEMORY_GROWTH=1" +# export CFLAGS="-O0 -g2" +# export CXXFLAGS="$CFLAGS" +# MAKE_FLAGS="-s BINARYEN_TRAP_MODE=clamp -s ALLOW_MEMORY_GROWTH=1 -s SAFE_HEAP=1 -s ASSERTIONS=1" + export PKG_CONFIG_PATH="/code/libpng:/code/zlib:/code/libjpeg:/code/libtiff:/code/libtiff/libtiff:" export PNG_LIBS="-L/code/libpng -L/code/libpng/.libs" diff --git a/tests/rotate/FriedrichNietzsche.png b/tests/rotate/FriedrichNietzsche.png new file mode 100644 index 0000000000000000000000000000000000000000..2e542bcb299ed75063cc52cf86da5a210d65c1dc GIT binary patch literal 39796 zcmV)(K#RYLP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+MS$fk{ma1h5zFeJ_7dTH~HhO?zR$tu_xb&+_WfP> z^>sJC-}uN&iLdGNW3S)W53fh>%l*E-zvr2}UjBBX^Wzum*I(THJ%9gR;I9k5e<^$} z;J@#8_xnwXpI?OU34H&&wT|BYehXoLz8m@bO8@-t^eI=a>8Xvcwmf~rR_bvXnT3pS16XM|nv9@@B{4(Ajr%yBU3%)NkzpttGa`VwE zTx4=_UU9XQ`wj@4;_!WJgTs0ax+>pYPL>(%sk8aoUUd7<$oU^XyI)>tB!CsBD#dtG zNS@DC^Ou<1)YIha;4?o*y%P97C&rwL(}6k>$;1>fx!jVf0|eK zZzlFn^XmT3iS7ThM7IB5O62Fazm>?H-`CS`nO%Q={pEG{;}@a)_J;KH%JJ`4{#hjP z*VoDHn0^UI|LgyIt>1e-cgO6J9QAusKa%Es$8n2W%jvzX^1;MVxSg;17<_b~WK(~} z*br|G02c%+ z=R*Fp+{vL?Qpu$h%C7V>%B1cns9I|iunp=eQIMt8)>?0)&7OMhr2_}O_tEEwBf(T< z)X_#CW6a4lCug3#d2+yWUS-wQR$pVyP5SJ-%dWfazQ>*xEg6Uhsx<31Y@TpP zrISxN)cfgYxHB)gb`zx!9^7{O9e4hWTKJaj?;rmlYT+BT_#&0~zx|9FueSE%6hUxO zoMJ}AVh%*SDFh^RRLp!2IY&iKG4mr*6(usrqS#na#E4)%A(k85CwRo}ugLwYxVhT@ z7`OOOBj*≤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 z z!*>{HQt6wd?$C>v6E6L#XUIVu*67H#+#9ObP2%W0t$Nq5`MHKVERP}4`7%14_(m%U gswWl(EjZ<|URg9?^&dI}qXi*aYI>@b*!$uC0o6~tNB{r; literal 0 HcmV?d00001 diff --git a/tests/rotate/node_header.js b/tests/rotate/node_header.js index 0ff2087..f6266ba 100644 --- a/tests/rotate/node_header.js +++ b/tests/rotate/node_header.js @@ -41,16 +41,16 @@ function ValidateFormat(fileName, formatToMatch) } } -function RotateFile(sourceFileName, destinationFileName) +function ConvertImage(sourceFileName, destinationFileName, convertArgs = []) { sourceFileNameEmscripten = '/' + sourceFileName; destinationFileNameEmscripten = '/' + destinationFileName; sourceFile = fs.readFileSync(sourceFileName); FS.writeFile(sourceFileNameEmscripten, sourceFile); - command = ["convert", sourceFileNameEmscripten, "-rotate", "90", destinationFileNameEmscripten]; + command = ["convert", sourceFileNameEmscripten].concat(convertArgs, [destinationFileNameEmscripten]); if(destinationFileName.endsWith('.png')) { - command = ["convert", sourceFileNameEmscripten, "-rotate", "90", "-define", "png:include-chunk=none", destinationFileNameEmscripten]; + command = ["convert", sourceFileNameEmscripten].concat(convertArgs, ["-define", "png:include-chunk=none", destinationFileNameEmscripten]); } console.log(`attempting to convert ${sourceFileName} to ${destinationFileName}` ) console.log(`running command ${command}`) @@ -62,12 +62,19 @@ function RotateFile(sourceFileName, destinationFileName) { console.log(`failed to convert ${sourceFileName} to ${destinationFileName}` ) console.log(`exception ${e}` ) + return false; } console.log(`ran command ${command}`) console.log(`converted ${sourceFileName} to ${destinationFileName}` ) destinationFileEmscripten = FS.readFile(destinationFileNameEmscripten); fs.writeFileSync(destinationFileName,destinationFileEmscripten); + return true; +} + +function RotateFile(sourceFileName, destinationFileName) +{ + return ConvertImage(sourceFileName, destinationFileName, convertArgs = ["-rotate", "90"]) } function ValidateFilesSame(leftFileName, rightFileName) @@ -112,6 +119,12 @@ Module.onRuntimeInitialized = function (){ console.log('\ntesting if gimp is working'); RotateFile('to_rotate.xcf', 'rotated.xcf.png'); ValidateFormat('to_rotate.xcf', 'XCF'); + + if(!ConvertImage('FriedrichNietzsche.png', 'FriedrichNietzsche-charcoal.png', ["-charcoal", "5"])) + { + console.log("Process IMage threw"); + process.exit(1); + } } var fs = require('fs');