Skip to content

Commit 20217da

Browse files
committed
factor cpp unit tests out of ruby unit tests
1 parent de74776 commit 20217da

File tree

3 files changed

+72
-20
lines changed

3 files changed

+72
-20
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include <ArduinoUnitTests.h>
2+
3+
unittest(pretend_equal_things_arent)
4+
{
5+
int x = 3;
6+
int y = 3;
7+
assertNotEqual(x, y);
8+
}
9+
10+
unittest_main()

spec/cpp_library_spec.rb

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,41 @@
33
sampleproj_path = File.join(File.dirname(File.dirname(__FILE__)), "SampleProjects")
44

55
RSpec.describe ArduinoCI::CppLibrary do
6-
cpp_lib_path = File.join(sampleproj_path, "TestSomething")
6+
cpp_lib_path = File.join(sampleproj_path, "DoSomething")
77
cpp_library = ArduinoCI::CppLibrary.new(cpp_lib_path)
88
context "cpp_files" do
99
it "finds cpp files in directory" do
10-
testsomething_cpp_files = ["TestSomething/test-something.cpp"]
10+
dosomething_cpp_files = ["DoSomething/do-something.cpp"]
1111
relative_paths = cpp_library.cpp_files.map { |f| f.split("SampleProjects/", 2)[1] }
12-
expect(relative_paths).to match_array(testsomething_cpp_files)
12+
expect(relative_paths).to match_array(dosomething_cpp_files)
1313
end
1414
end
1515

1616
context "header_dirs" do
1717
it "finds directories containing h files" do
18-
testsomething_header_dirs = ["TestSomething"]
18+
dosomething_header_dirs = ["DoSomething"]
1919
relative_paths = cpp_library.header_dirs.map { |f| f.split("SampleProjects/", 2)[1] }
20-
expect(relative_paths).to match_array(testsomething_header_dirs)
20+
expect(relative_paths).to match_array(dosomething_header_dirs)
2121
end
2222
end
2323

2424
context "tests_dir" do
2525
it "locate the tests directory" do
26-
testsomething_header_dirs = ["TestSomething"]
26+
dosomething_header_dirs = ["DoSomething"]
2727
relative_path = cpp_library.tests_dir.split("SampleProjects/", 2)[1]
28-
expect(relative_path).to eq("TestSomething/test")
28+
expect(relative_path).to eq("DoSomething/test")
2929
end
3030
end
3131

3232
context "test_files" do
3333
it "finds cpp files in directory" do
34-
testsomething_test_files = [
35-
"TestSomething/test/good-null.cpp",
36-
"TestSomething/test/good-math.cpp",
37-
"TestSomething/test/good-trig.cpp",
38-
"TestSomething/test/good-library.cpp",
39-
"TestSomething/test/good-godmode.cpp",
40-
"TestSomething/test/good-defines.cpp",
41-
"TestSomething/test/good-wcharacter.cpp",
42-
"TestSomething/test/good-wstring.cpp",
43-
"TestSomething/test/good-stream.cpp",
44-
"TestSomething/test/good-serial.cpp",
45-
"TestSomething/test/bad-null.cpp",
34+
dosomething_test_files = [
35+
"DoSomething/test/good-null.cpp",
36+
"DoSomething/test/good-library.cpp",
37+
"DoSomething/test/bad-null.cpp",
4638
]
4739
relative_paths = cpp_library.test_files.map { |f| f.split("SampleProjects/", 2)[1] }
48-
expect(relative_paths).to match_array(testsomething_test_files)
40+
expect(relative_paths).to match_array(dosomething_test_files)
4941
end
5042
end
5143

spec/testsomething_unittests_spec.rb

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
require "spec_helper"
2+
3+
sampleproj_path = File.join(File.dirname(File.dirname(__FILE__)), "SampleProjects")
4+
5+
RSpec.describe ArduinoCI::CppLibrary do
6+
cpp_lib_path = File.join(sampleproj_path, "TestSomething")
7+
cpp_library = ArduinoCI::CppLibrary.new(cpp_lib_path)
8+
context "cpp_files" do
9+
it "finds cpp files in directory" do
10+
testsomething_cpp_files = ["TestSomething/test-something.cpp"]
11+
relative_paths = cpp_library.cpp_files.map { |f| f.split("SampleProjects/", 2)[1] }
12+
expect(relative_paths).to match_array(testsomething_cpp_files)
13+
end
14+
end
15+
16+
context "test" do
17+
config = ArduinoCI::CIConfig.default
18+
19+
after(:each) do |example|
20+
if example.exception
21+
puts "Last command: #{cpp_library.last_cmd}"
22+
puts "========== Stdout:"
23+
puts cpp_library.last_out
24+
puts "========== Stderr:"
25+
puts cpp_library.last_err
26+
end
27+
end
28+
29+
it "is going to test more than one library" do
30+
test_files = cpp_library.test_files
31+
expect(test_files.empty?).to be false
32+
end
33+
34+
# well this override is clunky as hell.
35+
# @todo smooth this out for external purposes
36+
ArduinoCI::CIConfig.default.with_config(cpp_lib_path, ArduinoCI::CIConfig.default) do |config_path|
37+
config = ArduinoCI::CIConfig.default.with_override(config_path)
38+
39+
test_files = config.allowable_unittest_files(cpp_library.test_files)
40+
test_files.each do |path|
41+
expected = path.include?("good")
42+
it "tests #{File.basename(path)} expecting #{expected}" do
43+
exe = cpp_library.build_for_test_with_configuration(path, [], config.gcc_config("uno"))
44+
expect(exe).not_to be nil
45+
expect(cpp_library.run_test_file(exe)).to eq(expected)
46+
end
47+
end
48+
end
49+
end
50+
end

0 commit comments

Comments
 (0)