You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2015/05/16 15:37:50 UTC
[04/10] lucy-clownfish git commit: Implement TestUtils_time
Implement TestUtils_time
Untested on Windows
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/42fc9a4c
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/42fc9a4c
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/42fc9a4c
Branch: refs/heads/master
Commit: 42fc9a4c0bfc316f7c86e461eb9e5d92d9e02013
Parents: e77377a
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sun May 10 02:28:25 2015 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Tue May 12 20:15:25 2015 +0200
----------------------------------------------------------------------
runtime/common/charmonizer.c | 3 ++
runtime/common/charmonizer.main | 3 ++
runtime/core/Clownfish/TestHarness/TestUtils.c | 38 ++++++++++++++++++++
.../core/Clownfish/TestHarness/TestUtils.cfh | 5 +++
4 files changed, 49 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/42fc9a4c/runtime/common/charmonizer.c
----------------------------------------------------------------------
diff --git a/runtime/common/charmonizer.c b/runtime/common/charmonizer.c
index fc3f3e4..b7d5383 100644
--- a/runtime/common/charmonizer.c
+++ b/runtime/common/charmonizer.c
@@ -7896,6 +7896,9 @@ int main(int argc, const char **argv) {
chaz_VariadicMacros_run();
/* Write custom postamble. */
+ if (chaz_HeadCheck_check_header("sys/time.h")) {
+ chaz_ConfWriter_append_conf("#define CHY_HAS_SYS_TIME_H\n\n");
+ }
if (chaz_HeadCheck_defines_symbol("__sync_bool_compare_and_swap", "")) {
chaz_ConfWriter_append_conf(
"#define CHY_HAS___SYNC_BOOL_COMPARE_AND_SWAP\n\n");
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/42fc9a4c/runtime/common/charmonizer.main
----------------------------------------------------------------------
diff --git a/runtime/common/charmonizer.main b/runtime/common/charmonizer.main
index e14eef0..1602bd6 100644
--- a/runtime/common/charmonizer.main
+++ b/runtime/common/charmonizer.main
@@ -137,6 +137,9 @@ int main(int argc, const char **argv) {
chaz_VariadicMacros_run();
/* Write custom postamble. */
+ if (chaz_HeadCheck_check_header("sys/time.h")) {
+ chaz_ConfWriter_append_conf("#define CHY_HAS_SYS_TIME_H\n\n");
+ }
if (chaz_HeadCheck_defines_symbol("__sync_bool_compare_and_swap", "")) {
chaz_ConfWriter_append_conf(
"#define CHY_HAS___SYNC_BOOL_COMPARE_AND_SWAP\n\n");
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/42fc9a4c/runtime/core/Clownfish/TestHarness/TestUtils.c
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/TestHarness/TestUtils.c b/runtime/core/Clownfish/TestHarness/TestUtils.c
index 22c9f06..228aef7 100644
--- a/runtime/core/Clownfish/TestHarness/TestUtils.c
+++ b/runtime/core/Clownfish/TestHarness/TestUtils.c
@@ -122,6 +122,44 @@ TestUtils_get_str(const char *ptr) {
#include <windows.h>
+uint64_t
+TestUtils_time() {
+ SYSTEMTIME system_time;
+ GetSystemTime(&system_time);
+
+ FILETIME file_time;
+ SystemTimeToFileTime(&system_time, &file_time);
+
+ ULARGE_INTEGER ularge;
+ ularge.LowPart = file_time.dwLowDateTime;
+ ularge.HighPart = file_time.dwHighDateTime;
+
+ return ularge.QuadPart / 10;
+
+}
+
+/********************************* UNIXEN *********************************/
+#elif defined(CHY_HAS_SYS_TIME_H)
+
+#include <sys/time.h>
+
+uint64_t
+TestUtils_time() {
+ struct timeval t;
+ gettimeofday(&t, NULL);
+
+ return (uint64_t)t.tv_sec * 1000000 + t.tv_usec;
+}
+
+#else
+ #error "Can't find a known time API."
+#endif // OS switch.
+
+/********************************* WINDOWS ********************************/
+#ifdef CHY_HAS_WINDOWS_H
+
+#include <windows.h>
+
void
TestUtils_usleep(uint64_t microseconds) {
Sleep(microseconds / 1000);
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/42fc9a4c/runtime/core/Clownfish/TestHarness/TestUtils.cfh
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/TestHarness/TestUtils.cfh b/runtime/core/Clownfish/TestHarness/TestUtils.cfh
index b46bf91..594f838 100644
--- a/runtime/core/Clownfish/TestHarness/TestUtils.cfh
+++ b/runtime/core/Clownfish/TestHarness/TestUtils.cfh
@@ -71,6 +71,11 @@ inert class Clownfish::TestHarness::TestUtils {
inert incremented String*
random_string(size_t length);
+ /** Time in microseconds since the system-dependent epoch.
+ */
+ inert uint64_t
+ time();
+
inert void
usleep(uint64_t microseconds);