diff --git a/test/addFile.vader b/test/addFile.vader
index 395e46fd3abba1198f65453d0ee7c152bddcef30..af02e2f47669d24f94147569bffdc01fd6020b03 100644
--- a/test/addFile.vader
+++ b/test/addFile.vader
@@ -8,7 +8,7 @@ Execute (Add file):
     call Move_relative(+1)
     call magit#stage_file()
     call Cd_test()
-    call Git_diff('staged', 'bootstrap', '/tmp/addFile_bootstrap.test')
-    call Expect_diff(g:test_dir . 'addFile_bootstrap.expect', '/tmp/addFile_bootstrap.test')
+    let diff=Git_diff('staged', 'bootstrap')
+    call Expect_diff(g:test_dir . 'addFile_bootstrap.expect', diff)
 
 Include: cleanup.inc
diff --git a/test/utils.vim b/test/utils.vim
index 287db612a22cccd6a79f9fc201012c23fd47ad0a..c8f54f78a05458f31bbed3846b0ca640c0c10cd2 100644
--- a/test/utils.vim
+++ b/test/utils.vim
@@ -9,21 +9,20 @@ function! Move_relative(nb_lines)
 	call cursor(line('.') + a:nb_lines, 0)
 endfunction
 
-function! Git_diff(state, file, output)
+function! Git_diff(state, file)
 	let staged_flag = ( a:state == 'staged' ) ? ' --staged ' : ''
 	let diff_cmd="git diff --no-color --no-ext-diff --src-prefix='' --dst-prefix='' " .
 				\ staged_flag . " -- " . a:file .
-				\ " | \\grep -v \"^index [[:xdigit:]]\\{7\\}\\.\\.[[:xdigit:]]\\{7\\}\" > " .
-				\ a:output)
+				\ " | \\grep -v \"^index [[:xdigit:]]\\{7\\}\\.\\.[[:xdigit:]]\\{7\\}\""
 	let diff=system(diff_cmd)
 	if ( v:shell_error != 0 )
 		echoerr "git diff: " . diff
 	endif
-	return v:shell_error
+	return diff
 endfunction
 
-function! Expect_diff(gold_file, test_file)
-    let diff=system("diff " . a:gold_file . " " . a:test_file)
+function! Expect_diff(gold_file, test_diff)
+    let diff=system("diff " . a:gold_file . " - ", a:test_diff)
 	if ( v:shell_error != 0 )
 		echoerr "diff: " . diff
 	endif