Skip to content

Commit

Permalink
Even out some differences in Solaris diff
Browse files Browse the repository at this point in the history
  • Loading branch information
jkeiser authored and danielsdeleo committed Jan 22, 2013
1 parent dbee2ec commit 73de743
Showing 1 changed file with 22 additions and 21 deletions.
43 changes: 22 additions & 21 deletions spec/unit/chef_fs/diff_spec.rb
Expand Up @@ -24,8 +24,9 @@
# Removes the date stamp from the diff and replaces it with ' DATE'
# example match: "/dev/null\t2012-10-16 16:15:54.000000000 +0000"
# windows match: "--- /dev/null\tTue Oct 16 18:04:34 2012"
def remove_date(diff)
diff.gsub(/([+-]{3}.*)\t.*/, '\1 DATE')
def remove_os_differences(diff)
diff = diff.gsub(/([+-]{3}.*)\t.*/, '\1 DATE')
diff.sub(/^@@ -\d[,\d]? \+\d(,\d)? @@/, 'CONTEXT_LINE_NUMBERS')
end

describe 'diff', :uses_diff => true do
Expand Down Expand Up @@ -89,13 +90,13 @@ def remove_date(diff)
it 'Chef::ChefFS::CommandLine.diff(/)' do
results = []
Chef::ChefFS::CommandLine.diff(pattern('/'), a, b, nil, nil) do |diff|
results << remove_date(diff)
results << remove_os_differences(diff)
end
results.should =~ [
'diff --knife a/both_dirs/sub_both_files_different b/both_dirs/sub_both_files_different
--- a/both_dirs/sub_both_files_different DATE
+++ b/both_dirs/sub_both_files_different DATE
@@ -1 +1 @@
CONTEXT_LINE_NUMBERS
-a
+b
','diff --knife a/both_dirs/sub_dirs_empty_in_a_filled_in_b/subsub b/both_dirs/sub_dirs_empty_in_a_filled_in_b/subsub
Expand All @@ -108,14 +109,14 @@ def remove_date(diff)
deleted file
--- a/both_dirs/sub_dirs_empty_in_b_filled_in_a/subsub DATE
+++ /dev/null DATE
@@ -1 +0,0 @@
CONTEXT_LINE_NUMBERS
-subsub
','Only in a/both_dirs: sub_a_only_dir
','diff --knife a/both_dirs/sub_a_only_file b/both_dirs/sub_a_only_file
deleted file
--- a/both_dirs/sub_a_only_file DATE
+++ /dev/null DATE
@@ -1 +0,0 @@
CONTEXT_LINE_NUMBERS
-sub_a_only_file
','File b/both_dirs/sub_dir_in_a_file_in_b is a directory while file b/both_dirs/sub_dir_in_a_file_in_b is a regular file
','File a/both_dirs/sub_file_in_a_dir_in_b is a regular file while file a/both_dirs/sub_file_in_a_dir_in_b is a directory
Expand All @@ -129,7 +130,7 @@ def remove_date(diff)
','diff --knife a/both_files_different b/both_files_different
--- a/both_files_different DATE
+++ b/both_files_different DATE
@@ -1 +1 @@
CONTEXT_LINE_NUMBERS
-a
+b
','diff --knife a/dirs_empty_in_a_filled_in_b/subsub b/dirs_empty_in_a_filled_in_b/subsub
Expand All @@ -142,14 +143,14 @@ def remove_date(diff)
deleted file
--- a/dirs_empty_in_b_filled_in_a/subsub DATE
+++ /dev/null DATE
@@ -1 +0,0 @@
CONTEXT_LINE_NUMBERS
-subsub
','Only in a: a_only_dir
','diff --knife a/a_only_file b/a_only_file
deleted file
--- a/a_only_file DATE
+++ /dev/null DATE
@@ -1 +0,0 @@
CONTEXT_LINE_NUMBERS
-a_only_file
','File b/dir_in_a_file_in_b is a directory while file b/dir_in_a_file_in_b is a regular file
','File a/file_in_a_dir_in_b is a regular file while file a/file_in_a_dir_in_b is a directory
Expand All @@ -165,13 +166,13 @@ def remove_date(diff)
it 'Chef::ChefFS::CommandLine.diff(/both_dirs)' do
results = []
Chef::ChefFS::CommandLine.diff(pattern('/both_dirs'), a, b, nil, nil) do |diff|
results << remove_date(diff)
results << remove_os_differences(diff)
end
results.should =~ [
'diff --knife a/both_dirs/sub_both_files_different b/both_dirs/sub_both_files_different
--- a/both_dirs/sub_both_files_different DATE
+++ b/both_dirs/sub_both_files_different DATE
@@ -1 +1 @@
CONTEXT_LINE_NUMBERS
-a
+b
','diff --knife a/both_dirs/sub_dirs_empty_in_a_filled_in_b/subsub b/both_dirs/sub_dirs_empty_in_a_filled_in_b/subsub
Expand All @@ -184,14 +185,14 @@ def remove_date(diff)
deleted file
--- a/both_dirs/sub_dirs_empty_in_b_filled_in_a/subsub DATE
+++ /dev/null DATE
@@ -1 +0,0 @@
CONTEXT_LINE_NUMBERS
-subsub
','Only in a/both_dirs: sub_a_only_dir
','diff --knife a/both_dirs/sub_a_only_file b/both_dirs/sub_a_only_file
deleted file
--- a/both_dirs/sub_a_only_file DATE
+++ /dev/null DATE
@@ -1 +0,0 @@
CONTEXT_LINE_NUMBERS
-sub_a_only_file
','File b/both_dirs/sub_dir_in_a_file_in_b is a directory while file b/both_dirs/sub_dir_in_a_file_in_b is a regular file
','File a/both_dirs/sub_file_in_a_dir_in_b is a regular file while file a/both_dirs/sub_file_in_a_dir_in_b is a directory
Expand All @@ -207,14 +208,14 @@ def remove_date(diff)
it 'Chef::ChefFS::CommandLine.diff(/) with depth 1' do
results = []
Chef::ChefFS::CommandLine.diff(pattern('/'), a, b, 1, nil) do |diff|
results << remove_date(diff)
results << remove_os_differences(diff)
end
results.should =~ [
'Common subdirectories: /both_dirs
','diff --knife a/both_files_different b/both_files_different
--- a/both_files_different DATE
+++ b/both_files_different DATE
@@ -1 +1 @@
CONTEXT_LINE_NUMBERS
-a
+b
','Common subdirectories: /both_dirs_empty
Expand All @@ -225,7 +226,7 @@ def remove_date(diff)
deleted file
--- a/a_only_file DATE
+++ /dev/null DATE
@@ -1 +0,0 @@
CONTEXT_LINE_NUMBERS
-a_only_file
','File b/dir_in_a_file_in_b is a directory while file b/dir_in_a_file_in_b is a regular file
','File a/file_in_a_dir_in_b is a regular file while file a/file_in_a_dir_in_b is a directory
Expand All @@ -241,14 +242,14 @@ def remove_date(diff)
it 'Chef::ChefFS::CommandLine.diff(/*_*) with depth 0' do
results = []
Chef::ChefFS::CommandLine.diff(pattern('/*_*'), a, b, 0, nil) do |diff|
results << remove_date(diff)
results << remove_os_differences(diff)
end
results.should =~ [
'Common subdirectories: /both_dirs
','diff --knife a/both_files_different b/both_files_different
--- a/both_files_different DATE
+++ b/both_files_different DATE
@@ -1 +1 @@
CONTEXT_LINE_NUMBERS
-a
+b
','Common subdirectories: /both_dirs_empty
Expand All @@ -259,7 +260,7 @@ def remove_date(diff)
deleted file
--- a/a_only_file DATE
+++ /dev/null DATE
@@ -1 +0,0 @@
CONTEXT_LINE_NUMBERS
-a_only_file
','File b/dir_in_a_file_in_b is a directory while file b/dir_in_a_file_in_b is a regular file
','File a/file_in_a_dir_in_b is a regular file while file a/file_in_a_dir_in_b is a directory
Expand All @@ -275,7 +276,7 @@ def remove_date(diff)
it 'Chef::ChefFS::CommandLine.diff(/) in name-only mode' do
results = []
Chef::ChefFS::CommandLine.diff(pattern('/'), a, b, nil, :name_only) do |diff|
results << remove_date(diff)
results << remove_os_differences(diff)
end
results.should =~ [
"b/both_dirs/sub_both_files_different\n",
Expand All @@ -301,7 +302,7 @@ def remove_date(diff)
it 'Chef::ChefFS::CommandLine.diff(/) in name-status mode' do
results = []
Chef::ChefFS::CommandLine.diff(pattern('/'), a, b, nil, :name_status) do |diff|
results << remove_date(diff)
results << remove_os_differences(diff)
end
results.should =~ [
"M\tb/both_dirs/sub_both_files_different\n",
Expand Down

0 comments on commit 73de743

Please sign in to comment.