mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-03 09:01:50 -05:00
tests: modify sigbus-test to use 'check' framework
This commit is contained in:
parent
034807d6d3
commit
f4dd422c75
2 changed files with 30 additions and 10 deletions
|
|
@ -506,8 +506,8 @@ lock_autospawn_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
|
||||||
|
|
||||||
sigbus_test_SOURCES = tests/sigbus-test.c
|
sigbus_test_SOURCES = tests/sigbus-test.c
|
||||||
sigbus_test_LDADD = $(AM_LDADD) libpulsecore-@PA_MAJORMINOR@.la libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
|
sigbus_test_LDADD = $(AM_LDADD) libpulsecore-@PA_MAJORMINOR@.la libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
|
||||||
sigbus_test_CFLAGS = $(AM_CFLAGS)
|
sigbus_test_CFLAGS = $(AM_CFLAGS) $(LIBCHECK_CFLAGS)
|
||||||
sigbus_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
|
sigbus_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(LIBCHECK_LIBS)
|
||||||
|
|
||||||
gtk_test_SOURCES = tests/gtk-test.c
|
gtk_test_SOURCES = tests/gtk-test.c
|
||||||
gtk_test_LDADD = $(AM_LDADD) $(GTK20_LIBS) libpulse-mainloop-glib.la libpulse.la
|
gtk_test_LDADD = $(AM_LDADD) $(GTK20_LIBS) libpulse-mainloop-glib.la libpulse.la
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,12 @@
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
|
|
||||||
|
#include <check.h>
|
||||||
|
|
||||||
#include <pulsecore/memtrap.h>
|
#include <pulsecore/memtrap.h>
|
||||||
#include <pulsecore/core-util.h>
|
#include <pulsecore/core-util.h>
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
START_TEST (sigbus_test) {
|
||||||
void *p;
|
void *p;
|
||||||
int fd;
|
int fd;
|
||||||
pa_memtrap *m;
|
pa_memtrap *m;
|
||||||
|
|
@ -38,10 +40,10 @@ int main(int argc, char *argv[]) {
|
||||||
pa_memtrap_install();
|
pa_memtrap_install();
|
||||||
|
|
||||||
/* Create the memory map */
|
/* Create the memory map */
|
||||||
pa_assert_se((fd = open("sigbus-test-map", O_RDWR|O_TRUNC|O_CREAT, 0660)) >= 0);
|
fail_unless((fd = open("sigbus-test-map", O_RDWR|O_TRUNC|O_CREAT, 0660)) >= 0);
|
||||||
pa_assert_se(unlink("sigbus-test-map") == 0);
|
fail_unless(unlink("sigbus-test-map") == 0);
|
||||||
pa_assert_se(ftruncate(fd, PA_PAGE_SIZE) >= 0);
|
fail_unless(ftruncate(fd, PA_PAGE_SIZE) >= 0);
|
||||||
pa_assert_se((p = mmap(NULL, PA_PAGE_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) != MAP_FAILED);
|
fail_unless((p = mmap(NULL, PA_PAGE_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) != MAP_FAILED);
|
||||||
|
|
||||||
/* Register memory map */
|
/* Register memory map */
|
||||||
m = pa_memtrap_add(p, PA_PAGE_SIZE);
|
m = pa_memtrap_add(p, PA_PAGE_SIZE);
|
||||||
|
|
@ -54,7 +56,7 @@ int main(int argc, char *argv[]) {
|
||||||
pa_log("And memtrap says it is good: %s", pa_yes_no(pa_memtrap_is_good(m)));
|
pa_log("And memtrap says it is good: %s", pa_yes_no(pa_memtrap_is_good(m)));
|
||||||
|
|
||||||
/* Invalidate mapping */
|
/* Invalidate mapping */
|
||||||
pa_assert_se(ftruncate(fd, 0) >= 0);
|
fail_unless(ftruncate(fd, 0) >= 0);
|
||||||
|
|
||||||
/* Use memory map */
|
/* Use memory map */
|
||||||
pa_snprintf(p, PA_PAGE_SIZE, "This is a test that should fail but get caught.");
|
pa_snprintf(p, PA_PAGE_SIZE, "This is a test that should fail but get caught.");
|
||||||
|
|
@ -65,6 +67,24 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
pa_memtrap_remove(m);
|
pa_memtrap_remove(m);
|
||||||
munmap(p, PA_PAGE_SIZE);
|
munmap(p, PA_PAGE_SIZE);
|
||||||
|
}
|
||||||
return 0;
|
END_TEST
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
int failed = 0;
|
||||||
|
Suite *s;
|
||||||
|
TCase *tc;
|
||||||
|
SRunner *sr;
|
||||||
|
|
||||||
|
s = suite_create("Sig Bus");
|
||||||
|
tc = tcase_create("sigbus");
|
||||||
|
tcase_add_test(tc, sigbus_test);
|
||||||
|
suite_add_tcase(s, tc);
|
||||||
|
|
||||||
|
sr = srunner_create(s);
|
||||||
|
srunner_run_all(sr, CK_NORMAL);
|
||||||
|
failed = srunner_ntests_failed(sr);
|
||||||
|
srunner_free(sr);
|
||||||
|
|
||||||
|
return (failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue