/*
- * Copyright (c) - 2018 Jérémie Galarneau <jeremie.galarneau@efficios.com>
+ * Copyright (C) 2018 Jérémie Galarneau <jeremie.galarneau@efficios.com>
*
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by as
- * published by the Free Software Foundation; only version 2 of the License.
+ * SPDX-License-Identifier: GPL-2.0-only
*
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 51
- * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include <stdlib.h>
"Landjaeger tri-tip salami leberkas ball tip, ham hock chuck sausage "
"flank jerky cupim. Pig bacon chuck pancetta andouille.";
+static
void get_temporary_directories(char **_test_directory, char **_unlink_directory)
{
int ret;
}
}
+static
int fd_count(void)
{
DIR *dir;
ok(tracker, "Created an fd tracker with a limit of %d simulateously opened file descriptors",
TRACKER_FD_LIMIT);
if (!tracker) {
- return;
+ goto end;
}
track_std_fds(tracker);
fd_tracker_destroy(tracker);
ret = rmdir(test_directory);
ok(ret == 0, "Test directory is empty");
+end:
free(test_directory);
free(unlinked_files_directory);
}
/*
* Validate that the tracker enforces the open file descriptor limit
- * when unsuspendable file descritptors are being opened.
+ * when unsuspendable file descriptors are being opened.
*/
static
void test_unsuspendable_limit(void)
ret = fd_tracker_open_unsuspendable_fd(tracker, fds,
NULL, TRACKER_FD_LIMIT, open_pipes, NULL);
- ok(ret == 0, "File descriptor tracker allowed the user to meet its limit with unsuspendable file descritptors (%d)",
+ ok(ret == 0, "File descriptor tracker allowed the user to meet its limit with unsuspendable file descriptors (%d)",
TRACKER_FD_LIMIT);
ret = fd_tracker_open_unsuspendable_fd(tracker, &out_fd,
tracker = fd_tracker_create(unlinked_files_directory, TRACKER_FD_LIMIT);
if (!tracker) {
- return;
+ goto end;;
}
ret = pipe(unknown_fds);
assert(!ret);
- assert(close(unknown_fds[0]) == 0);
- assert(close(unknown_fds[1]) == 0);
+ ret = close(unknown_fds[0]);
+ assert(ret == 0);
+ ret = close(unknown_fds[1]);
+ assert(ret == 0);
ret = fd_tracker_open_unsuspendable_fd(tracker, &out_fd,
NULL, 1, noop_open, &stdout_fd);
fd_tracker_destroy(tracker);
ret = rmdir(test_directory);
ok(ret == 0, "Test directory is empty");
+end:
free(test_directory);
free(unlinked_files_directory);
}
tracker = fd_tracker_create(unlinked_files_directory, TRACKER_FD_LIMIT);
if (!tracker) {
- return;
+ goto end;
}
dir_handle = lttng_directory_handle_create(test_directory);
ok(ret == 0, "Test directory is empty");
fd_tracker_destroy(tracker);
lttng_directory_handle_put(dir_handle);
+end:
free(test_directory);
free(unlinked_files_directory);
}
tracker = fd_tracker_create(unlinked_files_directory, TRACKER_FD_LIMIT);
if (!tracker) {
- return;
+ goto end;
}
dir_handle = lttng_directory_handle_create(test_directory);
ok(ret == 0, "Test directory is empty");
fd_tracker_destroy(tracker);
lttng_directory_handle_put(dir_handle);
+end:
free(test_directory);
free(unlinked_files_directory);
}
tracker = fd_tracker_create(unlinked_files_directory, TRACKER_FD_LIMIT);
if (!tracker) {
- return;
+ goto end;
}
dir_handle = lttng_directory_handle_create(test_directory);
ok(ret == 0, "Test directory is empty");
fd_tracker_destroy(tracker);
lttng_directory_handle_put(dir_handle);
+end:
free(test_directory);
free(unlinked_files_directory);
}
tracker = fd_tracker_create(unlinked_files_directory, 1);
if (!tracker) {
- return;
+ goto end;
}
dir_handle = lttng_directory_handle_create(test_directory);
ok(!ret, "Successfully opened %i handles to %s/%s", handles_to_open,
test_directory, file_name);
if (ret) {
- return;
+ goto end;
}
/*
ret = rmdir(test_directory);
ok(ret == 0, "Test directory is empty");
+end:
fd_tracker_destroy(tracker);
free(test_directory);
free(unlinked_files_directory);
test_unsuspendable_duplicate();
diag("Unsuspendable - closing an untracked file descriptor");
test_unsuspendable_close_untracked();
- diag("Unsuspendable - check that file descritptor limit is enforced");
+ diag("Unsuspendable - check that file descriptor limit is enforced");
test_unsuspendable_limit();
- diag("Suspendable - check that file descritptor limit is enforced");
+ diag("Suspendable - check that file descriptor limit is enforced");
test_suspendable_limit();
diag("Suspendable - restoration test");
test_suspendable_restore();
- diag("Mixed - check that file descritptor limit is enforced");
+ diag("Mixed - check that file descriptor limit is enforced");
test_mixed_limit();
diag("Suspendable - Unlinking test");