summaryrefslogtreecommitdiff
path: root/deps/uv
diff options
context:
space:
mode:
authorTimothy J Fontaine <tjfontaine@gmail.com>2013-07-12 13:26:56 -0700
committerTimothy J Fontaine <tjfontaine@gmail.com>2013-07-12 13:26:56 -0700
commit48c542db523d88c79f62c6346b91bdf4b828ff6b (patch)
treebae60813b31e133016edb51bcf9f21cf5dc1a26a /deps/uv
parent9da67fa5198f3c0839904ae05cbfe88c61b3ad09 (diff)
parent5e86519199b28e9fe2241c8f6531350ed753613d (diff)
downloadnode-new-48c542db523d88c79f62c6346b91bdf4b828ff6b.tar.gz
Merge remote-tracking branch 'upstream/v0.10'
Conflicts: AUTHORS ChangeLog deps/npm/Makefile deps/npm/doc/api/npm-commands.md deps/npm/doc/api/npm-deprecate.md deps/npm/doc/api/npm-init.md deps/npm/doc/api/npm-owner.md deps/npm/doc/api/npm-publish.md deps/npm/doc/api/npm-run-script.md deps/npm/doc/cli/npm-adduser.md deps/npm/doc/cli/npm-bin.md deps/npm/doc/cli/npm-bugs.md deps/npm/doc/cli/npm-build.md deps/npm/doc/cli/npm-cache.md deps/npm/doc/cli/npm-completion.md deps/npm/doc/cli/npm-deprecate.md deps/npm/doc/cli/npm-docs.md deps/npm/doc/cli/npm-edit.md deps/npm/doc/cli/npm-explore.md deps/npm/doc/cli/npm-help-search.md deps/npm/doc/cli/npm-help.md deps/npm/doc/cli/npm-init.md deps/npm/doc/cli/npm-install.md deps/npm/doc/cli/npm-link.md deps/npm/doc/cli/npm-ls.md deps/npm/doc/cli/npm-outdated.md deps/npm/doc/cli/npm-owner.md deps/npm/doc/cli/npm-pack.md deps/npm/doc/cli/npm-prefix.md deps/npm/doc/cli/npm-prune.md deps/npm/doc/cli/npm-publish.md deps/npm/doc/cli/npm-restart.md deps/npm/doc/cli/npm-rm.md deps/npm/doc/cli/npm-root.md deps/npm/doc/cli/npm-run-script.md deps/npm/doc/cli/npm-search.md deps/npm/doc/cli/npm-shrinkwrap.md deps/npm/doc/cli/npm-start.md deps/npm/doc/cli/npm-stop.md deps/npm/doc/cli/npm-submodule.md deps/npm/doc/cli/npm-tag.md deps/npm/doc/cli/npm-test.md deps/npm/doc/cli/npm-uninstall.md deps/npm/doc/cli/npm-unpublish.md deps/npm/doc/cli/npm-update.md deps/npm/doc/cli/npm-version.md deps/npm/doc/cli/npm-view.md deps/npm/doc/cli/npm-whoami.md deps/npm/doc/files/npm-folders.md deps/npm/doc/files/package.json.md deps/npm/doc/misc/npm-coding-style.md deps/npm/doc/misc/npm-config.md deps/npm/doc/misc/npm-developers.md deps/npm/doc/misc/npm-disputes.md deps/npm/doc/misc/npm-faq.md deps/npm/doc/misc/npm-registry.md deps/npm/doc/misc/npm-scripts.md deps/npm/doc/misc/semver.md deps/npm/html/doc/README.html deps/npm/html/doc/api/npm-bin.html deps/npm/html/doc/api/npm-bugs.html deps/npm/html/doc/api/npm-commands.html deps/npm/html/doc/api/npm-config.html deps/npm/html/doc/api/npm-deprecate.html deps/npm/html/doc/api/npm-docs.html deps/npm/html/doc/api/npm-edit.html deps/npm/html/doc/api/npm-explore.html deps/npm/html/doc/api/npm-help-search.html deps/npm/html/doc/api/npm-init.html deps/npm/html/doc/api/npm-install.html deps/npm/html/doc/api/npm-link.html deps/npm/html/doc/api/npm-load.html deps/npm/html/doc/api/npm-ls.html deps/npm/html/doc/api/npm-outdated.html deps/npm/html/doc/api/npm-owner.html deps/npm/html/doc/api/npm-pack.html deps/npm/html/doc/api/npm-prefix.html deps/npm/html/doc/api/npm-prune.html deps/npm/html/doc/api/npm-publish.html deps/npm/html/doc/api/npm-rebuild.html deps/npm/html/doc/api/npm-restart.html deps/npm/html/doc/api/npm-root.html deps/npm/html/doc/api/npm-run-script.html deps/npm/html/doc/api/npm-search.html deps/npm/html/doc/api/npm-shrinkwrap.html deps/npm/html/doc/api/npm-start.html deps/npm/html/doc/api/npm-stop.html deps/npm/html/doc/api/npm-submodule.html deps/npm/html/doc/api/npm-tag.html deps/npm/html/doc/api/npm-test.html deps/npm/html/doc/api/npm-uninstall.html deps/npm/html/doc/api/npm-unpublish.html deps/npm/html/doc/api/npm-update.html deps/npm/html/doc/api/npm-version.html deps/npm/html/doc/api/npm-view.html deps/npm/html/doc/api/npm-whoami.html deps/npm/html/doc/api/npm.html deps/npm/html/doc/cli/npm-adduser.html deps/npm/html/doc/cli/npm-bin.html deps/npm/html/doc/cli/npm-bugs.html deps/npm/html/doc/cli/npm-build.html deps/npm/html/doc/cli/npm-bundle.html deps/npm/html/doc/cli/npm-cache.html deps/npm/html/doc/cli/npm-completion.html deps/npm/html/doc/cli/npm-config.html deps/npm/html/doc/cli/npm-dedupe.html deps/npm/html/doc/cli/npm-deprecate.html deps/npm/html/doc/cli/npm-docs.html deps/npm/html/doc/cli/npm-edit.html deps/npm/html/doc/cli/npm-explore.html deps/npm/html/doc/cli/npm-help-search.html deps/npm/html/doc/cli/npm-help.html deps/npm/html/doc/cli/npm-init.html deps/npm/html/doc/cli/npm-install.html deps/npm/html/doc/cli/npm-link.html deps/npm/html/doc/cli/npm-ls.html deps/npm/html/doc/cli/npm-outdated.html deps/npm/html/doc/cli/npm-owner.html deps/npm/html/doc/cli/npm-pack.html deps/npm/html/doc/cli/npm-prefix.html deps/npm/html/doc/cli/npm-prune.html deps/npm/html/doc/cli/npm-publish.html deps/npm/html/doc/cli/npm-rebuild.html deps/npm/html/doc/cli/npm-restart.html deps/npm/html/doc/cli/npm-rm.html deps/npm/html/doc/cli/npm-root.html deps/npm/html/doc/cli/npm-run-script.html deps/npm/html/doc/cli/npm-search.html deps/npm/html/doc/cli/npm-shrinkwrap.html deps/npm/html/doc/cli/npm-star.html deps/npm/html/doc/cli/npm-stars.html deps/npm/html/doc/cli/npm-start.html deps/npm/html/doc/cli/npm-stop.html deps/npm/html/doc/cli/npm-submodule.html deps/npm/html/doc/cli/npm-tag.html deps/npm/html/doc/cli/npm-test.html deps/npm/html/doc/cli/npm-uninstall.html deps/npm/html/doc/cli/npm-unpublish.html deps/npm/html/doc/cli/npm-update.html deps/npm/html/doc/cli/npm-version.html deps/npm/html/doc/cli/npm-view.html deps/npm/html/doc/cli/npm-whoami.html deps/npm/html/doc/cli/npm.html deps/npm/html/doc/files/npm-folders.html deps/npm/html/doc/files/npm-global.html deps/npm/html/doc/files/npm-json.html deps/npm/html/doc/files/npmrc.html deps/npm/html/doc/files/package.json.html deps/npm/html/doc/index.html deps/npm/html/doc/misc/npm-coding-style.html deps/npm/html/doc/misc/npm-config.html deps/npm/html/doc/misc/npm-developers.html deps/npm/html/doc/misc/npm-disputes.html deps/npm/html/doc/misc/npm-faq.html deps/npm/html/doc/misc/npm-index.html deps/npm/html/doc/misc/npm-registry.html deps/npm/html/doc/misc/npm-scripts.html deps/npm/html/doc/misc/removing-npm.html deps/npm/html/doc/misc/semver.html deps/npm/man/man1/npm-README.1 deps/npm/man/man1/npm-adduser.1 deps/npm/man/man1/npm-bin.1 deps/npm/man/man1/npm-bugs.1 deps/npm/man/man1/npm-build.1 deps/npm/man/man1/npm-bundle.1 deps/npm/man/man1/npm-cache.1 deps/npm/man/man1/npm-completion.1 deps/npm/man/man1/npm-dedupe.1 deps/npm/man/man1/npm-deprecate.1 deps/npm/man/man1/npm-docs.1 deps/npm/man/man1/npm-edit.1 deps/npm/man/man1/npm-explore.1 deps/npm/man/man1/npm-help-search.1 deps/npm/man/man1/npm-help.1 deps/npm/man/man1/npm-init.1 deps/npm/man/man1/npm-install.1 deps/npm/man/man1/npm-link.1 deps/npm/man/man1/npm-ls.1 deps/npm/man/man1/npm-outdated.1 deps/npm/man/man1/npm-owner.1 deps/npm/man/man1/npm-pack.1 deps/npm/man/man1/npm-prefix.1 deps/npm/man/man1/npm-prune.1 deps/npm/man/man1/npm-publish.1 deps/npm/man/man1/npm-rebuild.1 deps/npm/man/man1/npm-restart.1 deps/npm/man/man1/npm-rm.1 deps/npm/man/man1/npm-root.1 deps/npm/man/man1/npm-run-script.1 deps/npm/man/man1/npm-search.1 deps/npm/man/man1/npm-shrinkwrap.1 deps/npm/man/man1/npm-star.1 deps/npm/man/man1/npm-stars.1 deps/npm/man/man1/npm-start.1 deps/npm/man/man1/npm-stop.1 deps/npm/man/man1/npm-submodule.1 deps/npm/man/man1/npm-tag.1 deps/npm/man/man1/npm-test.1 deps/npm/man/man1/npm-uninstall.1 deps/npm/man/man1/npm-unpublish.1 deps/npm/man/man1/npm-update.1 deps/npm/man/man1/npm-version.1 deps/npm/man/man1/npm-view.1 deps/npm/man/man1/npm-whoami.1 deps/npm/man/man1/npm.1 deps/npm/man/man3/npm-bin.3 deps/npm/man/man3/npm-bugs.3 deps/npm/man/man3/npm-commands.3 deps/npm/man/man3/npm-config.3 deps/npm/man/man3/npm-deprecate.3 deps/npm/man/man3/npm-docs.3 deps/npm/man/man3/npm-edit.3 deps/npm/man/man3/npm-explore.3 deps/npm/man/man3/npm-help-search.3 deps/npm/man/man3/npm-init.3 deps/npm/man/man3/npm-install.3 deps/npm/man/man3/npm-link.3 deps/npm/man/man3/npm-load.3 deps/npm/man/man3/npm-ls.3 deps/npm/man/man3/npm-outdated.3 deps/npm/man/man3/npm-owner.3 deps/npm/man/man3/npm-pack.3 deps/npm/man/man3/npm-prefix.3 deps/npm/man/man3/npm-prune.3 deps/npm/man/man3/npm-publish.3 deps/npm/man/man3/npm-rebuild.3 deps/npm/man/man3/npm-restart.3 deps/npm/man/man3/npm-root.3 deps/npm/man/man3/npm-run-script.3 deps/npm/man/man3/npm-search.3 deps/npm/man/man3/npm-shrinkwrap.3 deps/npm/man/man3/npm-start.3 deps/npm/man/man3/npm-stop.3 deps/npm/man/man3/npm-submodule.3 deps/npm/man/man3/npm-tag.3 deps/npm/man/man3/npm-test.3 deps/npm/man/man3/npm-uninstall.3 deps/npm/man/man3/npm-unpublish.3 deps/npm/man/man3/npm-update.3 deps/npm/man/man3/npm-version.3 deps/npm/man/man3/npm-view.3 deps/npm/man/man3/npm-whoami.3 deps/npm/man/man3/npm.3 deps/npm/man/man5/npm-folders.5 deps/npm/man/man5/npm-global.5 deps/npm/man/man5/npm-json.5 deps/npm/man/man7/npm-coding-style.7 deps/npm/man/man7/npm-config.7 deps/npm/man/man7/npm-developers.7 deps/npm/man/man7/npm-disputes.7 deps/npm/man/man7/npm-faq.7 deps/npm/man/man7/npm-registry.7 deps/npm/man/man7/npm-scripts.7 deps/npm/man/man7/removing-npm.7 deps/npm/man/man7/semver.7 deps/npm/package.json deps/uv/AUTHORS deps/uv/ChangeLog deps/uv/src/version.c deps/uv/test/test-fs.c deps/uv/test/test-list.h lib/http.js lib/tls.js src/node_version.h
Diffstat (limited to 'deps/uv')
-rw-r--r--deps/uv/test/test-timer-from-check.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/deps/uv/test/test-timer-from-check.c b/deps/uv/test/test-timer-from-check.c
new file mode 100644
index 0000000000..2aa3fe4119
--- /dev/null
+++ b/deps/uv/test/test-timer-from-check.c
@@ -0,0 +1,80 @@
+/* Copyright Joyent, Inc. and other Node contributors. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include "uv.h"
+#include "task.h"
+
+static uv_prepare_t prepare_handle;
+static uv_check_t check_handle;
+static uv_timer_t timer_handle;
+
+static int prepare_cb_called;
+static int check_cb_called;
+static int timer_cb_called;
+
+
+static void prepare_cb(uv_prepare_t* handle, int status) {
+ ASSERT(0 == uv_prepare_stop(&prepare_handle));
+ ASSERT(0 == prepare_cb_called);
+ ASSERT(1 == check_cb_called);
+ ASSERT(0 == timer_cb_called);
+ prepare_cb_called++;
+}
+
+
+static void timer_cb(uv_timer_t* handle, int status) {
+ ASSERT(0 == uv_timer_stop(&timer_handle));
+ ASSERT(1 == prepare_cb_called);
+ ASSERT(1 == check_cb_called);
+ ASSERT(0 == timer_cb_called);
+ timer_cb_called++;
+}
+
+
+static void check_cb(uv_check_t* handle, int status) {
+ ASSERT(0 == uv_check_stop(&check_handle));
+ ASSERT(0 == uv_timer_stop(&timer_handle)); /* Runs before timer_cb. */
+ ASSERT(0 == uv_timer_start(&timer_handle, timer_cb, 50, 0));
+ ASSERT(0 == uv_prepare_start(&prepare_handle, prepare_cb));
+ ASSERT(0 == prepare_cb_called);
+ ASSERT(0 == check_cb_called);
+ ASSERT(0 == timer_cb_called);
+ check_cb_called++;
+}
+
+
+TEST_IMPL(timer_from_check) {
+ ASSERT(0 == uv_prepare_init(uv_default_loop(), &prepare_handle));
+ ASSERT(0 == uv_check_init(uv_default_loop(), &check_handle));
+ ASSERT(0 == uv_check_start(&check_handle, check_cb));
+ ASSERT(0 == uv_timer_init(uv_default_loop(), &timer_handle));
+ ASSERT(0 == uv_timer_start(&timer_handle, timer_cb, 50, 0));
+ ASSERT(0 == uv_run(uv_default_loop(), UV_RUN_DEFAULT));
+ ASSERT(1 == prepare_cb_called);
+ ASSERT(1 == check_cb_called);
+ ASSERT(1 == timer_cb_called);
+ uv_close((uv_handle_t*) &prepare_handle, NULL);
+ uv_close((uv_handle_t*) &check_handle, NULL);
+ uv_close((uv_handle_t*) &timer_handle, NULL);
+ ASSERT(0 == uv_run(uv_default_loop(), UV_RUN_ONCE));
+ MAKE_VALGRIND_HAPPY();
+ return 0;
+}