#include <fcntl.h>
#include <unistd.h>
#include <dpl/test/test_runner.h>
+#include <dpl/test/test_runner_multiprocess.h>
#include <dpl/log/log.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/xattr.h>
#include <sys/socket.h>
#include <sys/un.h>
-#include <sys/wait.h>
#include "tests_common.h"
#define TEST_SUBJECT "test_subject"
std::vector<std::string> accessesBasic = { "r", "w", "x", "wx", "rx", "rw", "rwx", "rwxat" };
-typedef std::unique_ptr<smack_accesses, std::function<void(smack_accesses*)> > AccessesUniquePtr;
-
-
-
-
int files_compare(int fd1, int fd2)
{
int result = 0;
free(smack_label);
}
-RUNNER_TEST_SMACK(smack09_new_label_from_socket)
+RUNNER_MULTIPROCESS_TEST_SMACK(smack09_new_label_from_socket)
{
int pid;
struct sockaddr_un sockaddr = {AF_UNIX, SOCK_PATH};
smack_unix_sock_server(sock);
}
close(sock);
- if (pid)
- waitpid(pid, NULL, 0);
+
exit(0);
} else { /* parent process, client */
sleep(1); /* Give server some time to setup listening socket */
RUNNER_ASSERT_MSG(result != 0, "smack labels do not differ: '" << smack_label1 << "' != '" << smack_label2 << "' i == " << i);
close(sock);
}
- waitpid(pid, NULL, 0);
}
}
* acquired from getsockopt, and it should fail, we must only set up socket and call
* smack_new_label_from_socket. It should return error.
*/
-RUNNER_TEST_NOSMACK(smack09_new_label_from_socket_nosmack)
+RUNNER_MULTIPROCESS_TEST_NOSMACK(smack09_new_label_from_socket_nosmack)
{
int pid;
struct sockaddr_un sockaddr = {AF_UNIX, SOCK_PATH};
//Try getting label, should fail beacuse getsockopt won't get anything
result = smack_new_label_from_socket(sock, &smack_label);
- if (result != -1) {
- close(sock);
- RUNNER_ASSERT_MSG(false, "smack_new_label_from_socket should fail.");
- }
-
- //Close socket, wait for server shutdown
close(sock);
- waitpid(pid, NULL, 0);
+ RUNNER_ASSERT_MSG(result == -1, "smack_new_label_from_socket should fail.");
}
}