diff options
| author | Sertonix | 2025-10-11 18:25:20 +0200 |
|---|---|---|
| committer | Julien Voisin | 2025-10-12 14:47:11 +0200 |
| commit | 41d3081c4ac0a79a4ad292957ead84f8477eaa55 (patch) | |
| tree | e1c2c2e51beb8009c61789bd6239e083e8288805 /tests | |
| parent | 2e22fe52b441308c274cfec4436204a9e5f70db7 (diff) | |
Add `swab`
Make the overlap check pedantic only since some software seems to rely
on glibc working when src and dest are the same.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/Makefile | 4 | ||||
| -rw-r--r-- | tests/test_swab_dynamic_read.c | 18 | ||||
| -rw-r--r-- | tests/test_swab_dynamic_write.c | 18 | ||||
| -rw-r--r-- | tests/test_swab_overwrite_over.c | 17 | ||||
| -rw-r--r-- | tests/test_swab_overwrite_under.c | 17 | ||||
| -rw-r--r-- | tests/test_swab_static_read.c | 18 | ||||
| -rw-r--r-- | tests/test_swab_static_write.c | 18 |
7 files changed, 110 insertions, 0 deletions
diff --git a/tests/Makefile b/tests/Makefile index e9e52dc..b4ea242 100644 --- a/tests/Makefile +++ b/tests/Makefile | |||
| @@ -126,6 +126,10 @@ RUNTIME_TARGETS= \ | |||
| 126 | test_strncpy_static_write \ | 126 | test_strncpy_static_write \ |
| 127 | test_strrchr_dynamic_read \ | 127 | test_strrchr_dynamic_read \ |
| 128 | test_strrchr_static_read \ | 128 | test_strrchr_static_read \ |
| 129 | test_swab_dynamic_read \ | ||
| 130 | test_swab_dynamic_write \ | ||
| 131 | test_swab_overwrite_over \ | ||
| 132 | test_swab_static_read \ | ||
| 129 | test_ttyname_r_dynamic \ | 133 | test_ttyname_r_dynamic \ |
| 130 | test_ttyname_r_static \ | 134 | test_ttyname_r_static \ |
| 131 | test_umask \ | 135 | test_umask \ |
diff --git a/tests/test_swab_dynamic_read.c b/tests/test_swab_dynamic_read.c new file mode 100644 index 0000000..402dc4e --- /dev/null +++ b/tests/test_swab_dynamic_read.c | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | #define _XOPEN_SOURCE | ||
| 2 | |||
| 3 | #include "common.h" | ||
| 4 | |||
| 5 | #include <unistd.h> | ||
| 6 | |||
| 7 | int main(int argc, char** argv) { | ||
| 8 | char buffer[12] = {0}; | ||
| 9 | swab("1234567890", buffer, sizeof(buffer) - 1); | ||
| 10 | puts(buffer); | ||
| 11 | |||
| 12 | CHK_FAIL_START | ||
| 13 | swab("123456", buffer, argc); | ||
| 14 | CHK_FAIL_END | ||
| 15 | |||
| 16 | puts(buffer); | ||
| 17 | return ret; | ||
| 18 | } | ||
diff --git a/tests/test_swab_dynamic_write.c b/tests/test_swab_dynamic_write.c new file mode 100644 index 0000000..21725b7 --- /dev/null +++ b/tests/test_swab_dynamic_write.c | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | #define _XOPEN_SOURCE | ||
| 2 | |||
| 3 | #include "common.h" | ||
| 4 | |||
| 5 | #include <unistd.h> | ||
| 6 | |||
| 7 | int main(int argc, char** argv) { | ||
| 8 | char buffer[8] = {0}; | ||
| 9 | swab("1234567890", buffer, sizeof(buffer) - 1); | ||
| 10 | puts(buffer); | ||
| 11 | |||
| 12 | CHK_FAIL_START | ||
| 13 | swab("1234567890", buffer, argc); | ||
| 14 | CHK_FAIL_END | ||
| 15 | |||
| 16 | puts(buffer); | ||
| 17 | return ret; | ||
| 18 | } | ||
diff --git a/tests/test_swab_overwrite_over.c b/tests/test_swab_overwrite_over.c new file mode 100644 index 0000000..997f6d1 --- /dev/null +++ b/tests/test_swab_overwrite_over.c | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | #define _XOPEN_SOURCE | ||
| 2 | |||
| 3 | #include "common.h" | ||
| 4 | |||
| 5 | #include <unistd.h> | ||
| 6 | |||
| 7 | int main(int argc, char** argv) { | ||
| 8 | char buffer[9] = {'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', '\0'}; | ||
| 9 | puts(buffer); | ||
| 10 | |||
| 11 | CHK_FAIL_START | ||
| 12 | swab(buffer+1, buffer, 5); | ||
| 13 | CHK_FAIL_END | ||
| 14 | |||
| 15 | puts(buffer); | ||
| 16 | return ret; | ||
| 17 | } | ||
diff --git a/tests/test_swab_overwrite_under.c b/tests/test_swab_overwrite_under.c new file mode 100644 index 0000000..1d69545 --- /dev/null +++ b/tests/test_swab_overwrite_under.c | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | #define _XOPEN_SOURCE | ||
| 2 | |||
| 3 | #include "common.h" | ||
| 4 | |||
| 5 | #include <unistd.h> | ||
| 6 | |||
| 7 | int main(int argc, char** argv) { | ||
| 8 | char buffer[9] = {'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', '\0'}; | ||
| 9 | puts(buffer); | ||
| 10 | |||
| 11 | CHK_FAIL_START | ||
| 12 | swab(buffer-1, buffer, 5); | ||
| 13 | CHK_FAIL_END | ||
| 14 | |||
| 15 | puts(buffer); | ||
| 16 | return ret; | ||
| 17 | } | ||
diff --git a/tests/test_swab_static_read.c b/tests/test_swab_static_read.c new file mode 100644 index 0000000..f7fffcb --- /dev/null +++ b/tests/test_swab_static_read.c | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | #define _XOPEN_SOURCE | ||
| 2 | |||
| 3 | #include "common.h" | ||
| 4 | |||
| 5 | #include <unistd.h> | ||
| 6 | |||
| 7 | int main(int argc, char** argv) { | ||
| 8 | char buffer[8] = {0}; | ||
| 9 | swab("123456", buffer, 4); | ||
| 10 | puts(buffer); | ||
| 11 | |||
| 12 | CHK_FAIL_START | ||
| 13 | swab("123456", buffer, sizeof(buffer)); | ||
| 14 | CHK_FAIL_END | ||
| 15 | |||
| 16 | puts(buffer); | ||
| 17 | return ret; | ||
| 18 | } | ||
diff --git a/tests/test_swab_static_write.c b/tests/test_swab_static_write.c new file mode 100644 index 0000000..b5a63c6 --- /dev/null +++ b/tests/test_swab_static_write.c | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | #define _XOPEN_SOURCE | ||
| 2 | |||
| 3 | #include "common.h" | ||
| 4 | |||
| 5 | #include <unistd.h> | ||
| 6 | |||
| 7 | int main(int argc, char** argv) { | ||
| 8 | char buffer[8] = {0}; | ||
| 9 | swab("1234567890", buffer, sizeof(buffer) - 1); | ||
| 10 | puts(buffer); | ||
| 11 | |||
| 12 | CHK_FAIL_START | ||
| 13 | swab("1234567890", buffer, sizeof(buffer) + 1); | ||
| 14 | CHK_FAIL_END | ||
| 15 | |||
| 16 | puts(buffer); | ||
| 17 | return ret; | ||
| 18 | } | ||
