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_LDADD = $(AM_LDADD) libpulsecore-@PA_MAJORMINOR@.la libpulse.la libpulsecommon-@PA_MAJORMINOR@.la
 | 
			
		||||
sigbus_test_CFLAGS = $(AM_CFLAGS)
 | 
			
		||||
sigbus_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 | 
			
		||||
sigbus_test_CFLAGS = $(AM_CFLAGS) $(LIBCHECK_CFLAGS)
 | 
			
		||||
sigbus_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(LIBCHECK_LIBS)
 | 
			
		||||
 | 
			
		||||
gtk_test_SOURCES = tests/gtk-test.c
 | 
			
		||||
gtk_test_LDADD = $(AM_LDADD) $(GTK20_LIBS) libpulse-mainloop-glib.la libpulse.la
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,10 +26,12 @@
 | 
			
		|||
#include <fcntl.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
 | 
			
		||||
#include <check.h>
 | 
			
		||||
 | 
			
		||||
#include <pulsecore/memtrap.h>
 | 
			
		||||
#include <pulsecore/core-util.h>
 | 
			
		||||
 | 
			
		||||
int main(int argc, char *argv[]) {
 | 
			
		||||
START_TEST (sigbus_test) {
 | 
			
		||||
    void *p;
 | 
			
		||||
    int fd;
 | 
			
		||||
    pa_memtrap *m;
 | 
			
		||||
| 
						 | 
				
			
			@ -38,10 +40,10 @@ int main(int argc, char *argv[]) {
 | 
			
		|||
    pa_memtrap_install();
 | 
			
		||||
 | 
			
		||||
    /* Create the memory map */
 | 
			
		||||
    pa_assert_se((fd = open("sigbus-test-map", O_RDWR|O_TRUNC|O_CREAT, 0660)) >= 0);
 | 
			
		||||
    pa_assert_se(unlink("sigbus-test-map") == 0);
 | 
			
		||||
    pa_assert_se(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((fd = open("sigbus-test-map", O_RDWR|O_TRUNC|O_CREAT, 0660)) >= 0);
 | 
			
		||||
    fail_unless(unlink("sigbus-test-map") == 0);
 | 
			
		||||
    fail_unless(ftruncate(fd, PA_PAGE_SIZE) >= 0);
 | 
			
		||||
    fail_unless((p = mmap(NULL, PA_PAGE_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) != MAP_FAILED);
 | 
			
		||||
 | 
			
		||||
    /* Register memory map */
 | 
			
		||||
    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)));
 | 
			
		||||
 | 
			
		||||
    /* Invalidate mapping */
 | 
			
		||||
    pa_assert_se(ftruncate(fd, 0) >= 0);
 | 
			
		||||
    fail_unless(ftruncate(fd, 0) >= 0);
 | 
			
		||||
 | 
			
		||||
    /* Use memory map */
 | 
			
		||||
    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);
 | 
			
		||||
    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