summary refs log tree commit diff stats
path: root/testament
diff options
context:
space:
mode:
authorTimothee Cour <timothee.cour2@gmail.com>2021-04-30 02:00:33 -0700
committerGitHub <noreply@github.com>2021-04-30 11:00:33 +0200
commit20248a68fd867ce64822698b316f1a8b6300d7ca (patch)
tree73e601d34f14150a7a3cef76a24df185a36267c2 /testament
parent16405083485967a395b8d677833bc26040881b21 (diff)
downloadNim-20248a68fd867ce64822698b316f1a8b6300d7ca.tar.gz
gitutils: add diffStrings, diffFiles, and use it in testament to compare expected vs gotten (#17892)
* gitutils: add diffStrings, diffFiles, and use it in testament to compare expected vs gotten
* refactor with createTempDir
* cleanup
* refacotr
* PRTEMP fake test spec changes to show effect of diffStrings
* add runnableExamples for experimental/diff + cross-reference with gitutils
* Revert "PRTEMP fake test spec changes to show effect of diffStrings"

This reverts commit 57dc8d642dce6c1127c98b7cbc9edbfe747d4047.
Diffstat (limited to 'testament')
-rw-r--r--testament/categories.nim4
-rw-r--r--testament/testament.nim3
2 files changed, 4 insertions, 3 deletions
diff --git a/testament/categories.nim b/testament/categories.nim
index ffee5eeb3..f1dee3570 100644
--- a/testament/categories.nim
+++ b/testament/categories.nim
@@ -665,8 +665,8 @@ proc runJoinedTest(r: var TResults, cat: Category, testsDir: string, options: st
 
   if buf != outputExpected:
     writeFile(outputExceptedFile, outputExpected)
-    discard execShellCmd("diff -uNdr $1 $2" % [outputExceptedFile, outputGottenFile])
-    echo failString & "megatest output different!"
+    echo diffFiles(outputGottenFile, outputExceptedFile).output
+    echo failString & "megatest output different, see $1 vs $2" % [outputGottenFile, outputExceptedFile]
     # outputGottenFile, outputExceptedFile not removed on purpose for debugging.
     quit 1
   else:
diff --git a/testament/testament.nim b/testament/testament.nim
index 9caa3f6b9..0607ac41d 100644
--- a/testament/testament.nim
+++ b/testament/testament.nim
@@ -17,6 +17,7 @@ from std/sugar import dup
 import compiler/nodejs
 import lib/stdtest/testutils
 from lib/stdtest/specialpaths import splitTestFile
+from std/private/gitutils import diffStrings
 
 proc trimUnitSep(x: var string) =
   let L = x.len
@@ -307,7 +308,7 @@ proc addResult(r: var TResults, test: TTest, target: TTarget,
       maybeStyledEcho styleBright, expected, "\n"
       maybeStyledEcho fgYellow, "Gotten:"
       maybeStyledEcho styleBright, given, "\n"
-
+      echo diffStrings(expected, given).output
 
   if backendLogging and (isAppVeyor or isAzure):
     let (outcome, msg) =