summaryrefslogtreecommitdiff
path: root/lib/pthreadpool
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2018-12-23 09:43:25 +0100
committerStefan Metzmacher <metze@samba.org>2019-01-11 23:11:13 +0100
commitf4d6c48c65bee34a6b4a433914008fe0a08e414d (patch)
treee2ea835a7591d4a2cf13c748d7e5b2696b45c870 /lib/pthreadpool
parente94cd84bbf87ee42495286d6ab9712ba35eaf23d (diff)
downloadsamba-f4d6c48c65bee34a6b4a433914008fe0a08e414d.tar.gz
Revert "pthreadpool: add tests for pthreadpool_tevent_[current_job_]per_thread_cwd()"
This reverts commit fbafdc99ef2cef11a1a28e795ffe965cb53ef7fa. See the discussion in https://lists.samba.org/archive/samba-technical/2018-December/131731.html for the reasoning behind this revert. Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'lib/pthreadpool')
-rw-r--r--lib/pthreadpool/tests_cmocka.c144
1 files changed, 0 insertions, 144 deletions
diff --git a/lib/pthreadpool/tests_cmocka.c b/lib/pthreadpool/tests_cmocka.c
index 5c7f6ab6904..dc7b1150b5c 100644
--- a/lib/pthreadpool/tests_cmocka.c
+++ b/lib/pthreadpool/tests_cmocka.c
@@ -244,147 +244,6 @@ static void test_create(void **state)
assert_false(in_main_thread);
}
-static void test_per_thread_cwd_job(void *ptr)
-{
- const bool *per_thread_cwd_ptr = ptr;
- bool per_thread_cwd;
- char cwdbuf[PATH_MAX] = {0,};
- char *cwdstr = NULL;
- int ret;
-
- /*
- * This needs to be consistent.
- */
- per_thread_cwd = pthreadpool_tevent_current_job_per_thread_cwd();
- assert_int_equal(per_thread_cwd, *per_thread_cwd_ptr);
-
- if (!per_thread_cwd) {
- return;
- }
-
- /*
- * Check we're not already in "/".
- */
- cwdstr = getcwd(cwdbuf, sizeof(cwdbuf));
- assert_non_null(cwdstr);
- assert_string_not_equal(cwdstr, "/");
-
- ret = chdir("/");
- assert_int_equal(ret, 0);
-
- /*
- * Check we're in "/" now.
- */
- cwdstr = getcwd(cwdbuf, sizeof(cwdbuf));
- assert_non_null(cwdstr);
- assert_string_equal(cwdstr, "/");
-}
-
-static int test_per_thread_cwd_do(struct tevent_context *ev,
- struct pthreadpool_tevent *pool)
-{
- struct tevent_req *req;
- bool per_thread_cwd;
- bool ok;
- int ret;
- per_thread_cwd = pthreadpool_tevent_per_thread_cwd(pool);
-
- req = pthreadpool_tevent_job_send(
- ev, ev, pool, test_per_thread_cwd_job, &per_thread_cwd);
- if (req == NULL) {
- fprintf(stderr, "pthreadpool_tevent_job_send failed\n");
- return ENOMEM;
- }
-
- ok = tevent_req_poll(req, ev);
- if (!ok) {
- ret = errno;
- fprintf(stderr, "tevent_req_poll failed: %s\n",
- strerror(ret));
- return ret;
- }
-
- ret = pthreadpool_tevent_job_recv(req);
- TALLOC_FREE(req);
- if (ret != 0) {
- fprintf(stderr, "tevent_req_recv failed: %s\n",
- strerror(ret));
- return ret;
- }
-
- return 0;
-}
-
-static void test_per_thread_cwd(void **state)
-{
- struct pthreadpool_tevent_test *t = *state;
- int ret;
- bool per_thread_cwd_u;
- bool per_thread_cwd_o;
- bool per_thread_cwd_s;
- char cwdbuf1[PATH_MAX] = {0,};
- char *cwdstr1 = NULL;
- char cwdbuf2[PATH_MAX] = {0,};
- char *cwdstr2 = NULL;
-
- /*
- * The unlimited and one pools
- * should be consistent.
- *
- * We can't enforce this as some constraint
- * container environments disable unshare()
- * completely, even just with CLONE_FS.
- */
- per_thread_cwd_u = pthreadpool_tevent_per_thread_cwd(t->upool);
- per_thread_cwd_o = pthreadpool_tevent_per_thread_cwd(t->opool);
- assert_int_equal(per_thread_cwd_u, per_thread_cwd_o);
-
- /*
- * The sync pool should never support this.
- */
- per_thread_cwd_s = pthreadpool_tevent_per_thread_cwd(t->spool);
- assert_false(per_thread_cwd_s);
-
- /*
- * Check we're not already in "/".
- */
- cwdstr1 = getcwd(cwdbuf1, sizeof(cwdbuf1));
- assert_non_null(cwdstr1);
- assert_string_not_equal(cwdstr1, "/");
-
- will_return(__wrap_pthread_create, 0);
- ret = test_per_thread_cwd_do(t->ev, t->upool);
- assert_int_equal(ret, 0);
-
- /*
- * Check we're still in the same directory.
- */
- cwdstr2 = getcwd(cwdbuf2, sizeof(cwdbuf2));
- assert_non_null(cwdstr2);
- assert_string_equal(cwdstr2, cwdstr1);
-
- will_return(__wrap_pthread_create, 0);
- ret = test_per_thread_cwd_do(t->ev, t->opool);
- assert_int_equal(ret, 0);
-
- /*
- * Check we're still in the same directory.
- */
- cwdstr2 = getcwd(cwdbuf2, sizeof(cwdbuf2));
- assert_non_null(cwdstr2);
- assert_string_equal(cwdstr2, cwdstr1);
-
- ret = test_per_thread_cwd_do(t->ev, t->spool);
- assert_int_equal(ret, 0);
-
- /*
- * Check we're still in the same directory.
- */
- cwdstr2 = getcwd(cwdbuf2, sizeof(cwdbuf2));
- assert_non_null(cwdstr2);
- assert_string_equal(cwdstr2, cwdstr1);
-}
-
struct test_cancel_job {
int fdm; /* the main end of socketpair */
int fdj; /* the job end of socketpair */
@@ -811,9 +670,6 @@ int main(int argc, char **argv)
cmocka_unit_test_setup_teardown(test_create,
setup_pthreadpool_tevent,
teardown_pthreadpool_tevent),
- cmocka_unit_test_setup_teardown(test_per_thread_cwd,
- setup_pthreadpool_tevent,
- teardown_pthreadpool_tevent),
cmocka_unit_test_setup_teardown(test_cancel_job,
setup_pthreadpool_tevent,
teardown_pthreadpool_tevent),