summaryrefslogtreecommitdiff
path: root/FreeRTOS-Plus/Test/CMock/vendor/unity/test/spec/generate_module_existing_file_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS-Plus/Test/CMock/vendor/unity/test/spec/generate_module_existing_file_spec.rb')
-rw-r--r--FreeRTOS-Plus/Test/CMock/vendor/unity/test/spec/generate_module_existing_file_spec.rb158
1 files changed, 158 insertions, 0 deletions
diff --git a/FreeRTOS-Plus/Test/CMock/vendor/unity/test/spec/generate_module_existing_file_spec.rb b/FreeRTOS-Plus/Test/CMock/vendor/unity/test/spec/generate_module_existing_file_spec.rb
new file mode 100644
index 000000000..74e7fc840
--- /dev/null
+++ b/FreeRTOS-Plus/Test/CMock/vendor/unity/test/spec/generate_module_existing_file_spec.rb
@@ -0,0 +1,158 @@
+
+require '../auto/generate_module.rb'
+require 'fileutils'
+
+def touch_src(file)
+ FileUtils.touch "sandbox/src/#{file}"
+end
+
+def touch_test(file)
+ FileUtils.touch "sandbox/test/#{file}"
+end
+
+def create_src_with_known_content(file)
+ File.open("sandbox/src/#{file}", "w") {|f| f.write("the original #{file}")}
+end
+
+def create_test_with_known_content(file)
+ File.open("sandbox/test/#{file}", "w") {|f| f.write("the original #{file}")}
+end
+
+def expect_src_content_didnt_change(file)
+ expect(File.read("sandbox/src/#{file}")).to eq("the original #{file}")
+end
+
+def expect_test_content_didnt_change(file)
+ expect(File.read("sandbox/test/#{file}")).to eq("the original #{file}")
+end
+
+def expect_src_file_to_exist(file)
+ expect(File.exist?("sandbox/src/#{file}")).to be true
+end
+
+def expect_test_file_to_exist(file)
+ expect(File.exist?("sandbox/test/#{file}")).to be true
+end
+
+describe "UnityModuleGenerator" do
+
+ before do
+ # clean sandbox and setup our "project" folders
+ FileUtils.rm_rf "sandbox"
+ FileUtils.mkdir_p "sandbox"
+ FileUtils.mkdir_p "sandbox/src"
+ FileUtils.mkdir_p "sandbox/test"
+
+ @options = {
+ :path_src => "sandbox/src",
+ :path_tst => "sandbox/test",
+ }
+ end
+
+ context "with src pattern" do
+ before do
+ @options[:pattern] = "src"
+ end
+
+ it "fails when all files already exist" do
+ # create an existing triad of files
+ touch_src "meh.c"
+ touch_src "meh.h"
+ touch_test "Testmeh.c"
+ expect {
+ UnityModuleGenerator.new(@options).generate("meh")
+ }.to raise_error("ERROR: File meh already exists. Exiting.")
+ end
+
+ it "creates the test file if the source and header files exist" do
+ # Create the existing files.
+ touch_src "meh.c"
+ touch_src "meh.h"
+
+ UnityModuleGenerator.new(@options).generate("meh")
+
+ expect_test_file_to_exist "Testmeh.c"
+ end
+
+ it "does not alter existing files" do
+ # Create some files with known content.
+ create_src_with_known_content "meh.c"
+ create_src_with_known_content "meh.h"
+
+ UnityModuleGenerator.new(@options).generate("meh")
+
+ expect_src_content_didnt_change "meh.c"
+ expect_src_content_didnt_change "meh.c"
+ end
+
+ it "does not alter existing test files" do
+ # Create some files with known content.
+ create_test_with_known_content "Testmeh.c"
+
+ UnityModuleGenerator.new(@options).generate("meh")
+
+ expect_test_content_didnt_change "Testmeh.c"
+ end
+
+ end
+
+ context "with mch pattern" do
+ before do
+ @options[:pattern] = "mch"
+ end
+
+ it "fails when all files exist" do
+ touch_src "meh_model.c"
+ touch_src "meh_conductor.c"
+ touch_src "meh_hardware.c"
+ touch_src "meh_model.h"
+ touch_src "meh_conductor.h"
+ touch_src "meh_hardware.h"
+ touch_test "Testmeh_model.c"
+ touch_test "Testmeh_conductor.c"
+ touch_test "Testmeh_hardware.c"
+ expect {
+ UnityModuleGenerator.new(@options).generate("meh")
+ }.to raise_error("ERROR: File meh_model already exists. Exiting.")
+ end
+
+ it "creates files that don't exist" do
+ touch_src "meh_model.c"
+ touch_src "meh_conductor.c"
+ touch_src "meh_hardware.c"
+ touch_src "meh_model.h"
+ touch_src "meh_conductor.h"
+
+ UnityModuleGenerator.new(@options).generate("meh")
+
+ expect_src_file_to_exist "meh_hardware.h"
+ expect_test_file_to_exist "Testmeh_model.c"
+ expect_test_file_to_exist "Testmeh_conductor.c"
+ expect_test_file_to_exist "Testmeh_hardware.c"
+ end
+
+ it "does not alter existing source files" do
+ create_src_with_known_content "meh_model.c"
+ create_src_with_known_content "meh_model.c"
+ create_src_with_known_content "meh_model.c"
+ create_src_with_known_content "meh_model.h"
+ create_src_with_known_content "meh_model.c"
+
+ UnityModuleGenerator.new(@options).generate("meh")
+
+ expect_src_content_didnt_change "meh_model.c"
+ expect_src_content_didnt_change "meh_model.c"
+ expect_src_content_didnt_change "meh_model.c"
+ expect_src_content_didnt_change "meh_model.c"
+ end
+
+ it "does not alter existing test files" do
+ create_test_with_known_content "Testmeh_model.c"
+
+ UnityModuleGenerator.new(@options).generate("meh")
+
+ expect_test_content_didnt_change "Testmeh_model.c"
+ end
+
+ end
+end