Commit 23c3670
James Foster
The test is now more explicit about looking at the values expected. Before the fix to Client.h we get the following error:
```
# Subtest: Client_copy_constructor
ok 1 - assertEqual "1" == *(c1.mGodmodeDataIn)
ok 2 - assertEqual "2" == *(c2.mGodmodeDataIn)
not ok 3 - assertNotEqual c1.mGodmodeDataIn != c2.mGodmodeDataIn
---
operator: !=
unwanted: 0x603000007750
actual: 0x603000007750
at:
file: /Users/jfoster/Documents/Arduino/libraries/TestSomething/test/clientServer.cpp
line: 32
...
ok 4 - assertEqual "1" == *(c1.mGodmodeDataIn)
ok 5 - assertEqual "1" == *(c2.mGodmodeDataIn)
not ok 6 - assertEqual "11" == *(c1.mGodmodeDataIn)
---
operator: ==
expected: 11
actual: 112
at:
file: /Users/jfoster/Documents/Arduino/libraries/TestSomething/test/clientServer.cpp
line: 37
...
not ok 7 - assertEqual "12" == *(c2.mGodmodeDataIn)
---
operator: ==
expected: 12
actual: 112
at:
file: /Users/jfoster/Documents/Arduino/libraries/TestSomething/test/clientServer.cpp
line: 38
...
AddressSanitizer:DEADLYSIGNAL
=================================================================
==16588==ERROR: AddressSanitizer: SEGV on unknown address (pc 0x0001076e5918 bp 0x7ffee8564290 sp 0x7ffee8564260 T0)
==16588==The signal is caused by a READ memory access.
==16588==Hint: this fault was caused by a dereference of a high value address (see register values below). Dissassemble the provided pc to learn which register was used.
#0 0x1076e5918 in __asan::Allocator::Deallocate(void*, unsigned long, unsigned long, __sanitizer::BufferedStackTrace*, __asan::AllocType)+0x48 (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5918)
#1 0x107733125 in wrap__ZdlPv+0xe5 (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x53125)
#2 0x10769d528 in String::~String() WString.h:65
#3 0x10769d228 in String::~String() WString.h:65
#4 0x1076a6856 in Client::~Client() Client.h:35
#5 0x1076a2f48 in Client::~Client() Client.h:33
#6 0x1076a3473 in test_Client_copy_constructor::task() clientServer.cpp:39
#7 0x1076a8390 in Test::test() ArduinoUnitTests.h:205
#8 0x1076a7f2d in Test::run(Test::ReporterTAP*) ArduinoUnitTests.h:176
#9 0x1076a5713 in Test::run_and_report(int, char**) ArduinoUnitTests.h:195
#10 0x1076a5658 in main clientServer.cpp:110
#11 0x7fff70a26cc8 in start+0x0 (libdyld.dylib:x86_64+0x1acc8)
==16588==Register values:
rax = 0x0000000000000002 rbx = 0xbebebebebebebebe rcx = 0x0000000000000003 rdx = 0x0000000000000000
rdi = 0xbebebebebebebebe rsi = 0xbebebebebebebebe rbp = 0x00007ffee8564290 rsp = 0x00007ffee8564260
r8 = 0x00007ffee85642a0 r9 = 0x0000000000000002 r10 = 0xffffffffffffffff r11 = 0x00000fffffffffff
r12 = 0x0000000000000002 r13 = 0x0000000000000000 r14 = 0x00007ffee85642a0 r15 = 0x0000000107780d40
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x5918) in __asan::Allocator::Deallocate(void*, unsigned long, unsigned long, __sanitizer::BufferedStackTrace*, __asan::AllocType)+0x48
==16588==ABORTING
...Unit testing clientServer.cpp with g++ for uno ✗
```
After the fix we get the following:
```
# Subtest: Client_copy_constructor
ok 1 - assertEqual "1" == *(c1.mGodmodeDataIn)
ok 2 - assertEqual "2" == *(c2.mGodmodeDataIn)
ok 3 - assertNotEqual c1.mGodmodeDataIn != c2.mGodmodeDataIn
ok 4 - assertEqual "1" == *(c1.mGodmodeDataIn)
ok 5 - assertEqual "1" == *(c2.mGodmodeDataIn)
ok 6 - assertEqual "11" == *(c1.mGodmodeDataIn)
ok 7 - assertEqual "12" == *(c2.mGodmodeDataIn)
ok 8 - True true
1..8
ok 2 - Client_copy_constructor
```1 parent 2b7c6e3 commit 23c3670
1 file changed
+20
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
30 | 43 | | |
31 | 44 | | |
32 | 45 | | |
| |||
0 commit comments