summaryrefslogtreecommitdiff
path: root/deps/Unity/test/spec
diff options
context:
space:
mode:
authorOmniscient <17525998+omnisci3nce@users.noreply.github.com>2024-02-24 22:47:46 +1100
committerOmniscient <17525998+omnisci3nce@users.noreply.github.com>2024-02-24 22:47:46 +1100
commit7b3afcaf77f96e7d62f6cd1623ead7f17512d79f (patch)
treeb5f82c64e9c06a84e4d095ab4ac48712e860b673 /deps/Unity/test/spec
parentb047be5252aeb981faea077409c1768fda0301d9 (diff)
repo init. partial port of existing code
Diffstat (limited to 'deps/Unity/test/spec')
-rw-r--r--deps/Unity/test/spec/generate_module_existing_file_spec.rb158
1 files changed, 158 insertions, 0 deletions
diff --git a/deps/Unity/test/spec/generate_module_existing_file_spec.rb b/deps/Unity/test/spec/generate_module_existing_file_spec.rb
new file mode 100644
index 0000000..74e7fc8
--- /dev/null
+++ b/deps/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