Skip to content

Commit

Permalink
build: split off tests into separate gyp file
Browse files Browse the repository at this point in the history
Make it easier for Node.js to ship libuv in its tarballs without also
including the test suite.  Node.js already does so but recent changes
to its build system complicate that.

Kills two birds with one stone: it helps out Node.js and it makes it
harder for us to introduce hidden dependencies between the library and
the test suite.

PR-URL: libuv#1725
Refs: nodejs/node#18287
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  • Loading branch information
bnoordhuis committed Jan 27, 2018
1 parent 760556d commit fdf7c2a
Show file tree
Hide file tree
Showing 4 changed files with 331 additions and 314 deletions.
2 changes: 1 addition & 1 deletion gyp_uv.py
Expand Up @@ -43,7 +43,7 @@ def run_gyp(args):

if __name__ == '__main__':
args = sys.argv[1:]
args.extend('-I common.gypi uv.gyp'.split(' '))
args.extend('-I common.gypi test/test.gyp'.split(' '))
args.append('--depth=' + uv_root)

# There's a bug with windows which doesn't allow this feature.
Expand Down
279 changes: 279 additions & 0 deletions test/test.gyp
@@ -0,0 +1,279 @@
{
'targets': [
{
'target_name': 'run-tests',
'type': 'executable',
'dependencies': [ '../uv.gyp:libuv' ],
'sources': [
'blackhole-server.c',
'echo-server.c',
'run-tests.c',
'runner.c',
'runner.h',
'test-get-loadavg.c',
'task.h',
'test-active.c',
'test-async.c',
'test-async-null-cb.c',
'test-callback-stack.c',
'test-callback-order.c',
'test-close-fd.c',
'test-close-order.c',
'test-connect-unspecified.c',
'test-connection-fail.c',
'test-cwd-and-chdir.c',
'test-default-loop-close.c',
'test-delayed-accept.c',
'test-eintr-handling.c',
'test-error.c',
'test-embed.c',
'test-emfile.c',
'test-env-vars.c',
'test-fail-always.c',
'test-fork.c',
'test-fs.c',
'test-fs-copyfile.c',
'test-fs-event.c',
'test-getters-setters.c',
'test-get-currentexe.c',
'test-get-memory.c',
'test-get-passwd.c',
'test-getaddrinfo.c',
'test-gethostname.c',
'test-getnameinfo.c',
'test-getsockname.c',
'test-handle-fileno.c',
'test-homedir.c',
'test-hrtime.c',
'test-idle.c',
'test-ip6-addr.c',
'test-ipc.c',
'test-ipc-send-recv.c',
'test-list.h',
'test-loop-handles.c',
'test-loop-alive.c',
'test-loop-close.c',
'test-loop-stop.c',
'test-loop-time.c',
'test-loop-configure.c',
'test-walk-handles.c',
'test-watcher-cross-stop.c',
'test-multiple-listen.c',
'test-osx-select.c',
'test-pass-always.c',
'test-ping-pong.c',
'test-pipe-bind-error.c',
'test-pipe-connect-error.c',
'test-pipe-connect-multiple.c',
'test-pipe-connect-prepare.c',
'test-pipe-getsockname.c',
'test-pipe-pending-instances.c',
'test-pipe-sendmsg.c',
'test-pipe-server-close.c',
'test-pipe-close-stdout-read-stdin.c',
'test-pipe-set-non-blocking.c',
'test-pipe-set-fchmod.c',
'test-platform-output.c',
'test-poll.c',
'test-poll-close.c',
'test-poll-close-doesnt-corrupt-stack.c',
'test-poll-closesocket.c',
'test-poll-oob.c',
'test-process-title.c',
'test-process-title-threadsafe.c',
'test-queue-foreach-delete.c',
'test-ref.c',
'test-run-nowait.c',
'test-run-once.c',
'test-semaphore.c',
'test-shutdown-close.c',
'test-shutdown-eof.c',
'test-shutdown-twice.c',
'test-signal.c',
'test-signal-multiple-loops.c',
'test-socket-buffer-size.c',
'test-spawn.c',
'test-fs-poll.c',
'test-stdio-over-pipes.c',
'test-tcp-alloc-cb-fail.c',
'test-tcp-bind-error.c',
'test-tcp-bind6-error.c',
'test-tcp-close.c',
'test-tcp-close-accept.c',
'test-tcp-close-while-connecting.c',
'test-tcp-create-socket-early.c',
'test-tcp-connect-error-after-write.c',
'test-tcp-shutdown-after-write.c',
'test-tcp-flags.c',
'test-tcp-connect-error.c',
'test-tcp-connect-timeout.c',
'test-tcp-connect6-error.c',
'test-tcp-open.c',
'test-tcp-write-to-half-open-connection.c',
'test-tcp-write-after-connect.c',
'test-tcp-writealot.c',
'test-tcp-write-fail.c',
'test-tcp-try-write.c',
'test-tcp-unexpected-read.c',
'test-tcp-oob.c',
'test-tcp-read-stop.c',
'test-tcp-write-queue-order.c',
'test-threadpool.c',
'test-threadpool-cancel.c',
'test-thread-equal.c',
'test-tmpdir.c',
'test-mutexes.c',
'test-thread.c',
'test-barrier.c',
'test-condvar.c',
'test-timer-again.c',
'test-timer-from-check.c',
'test-timer.c',
'test-tty.c',
'test-udp-alloc-cb-fail.c',
'test-udp-bind.c',
'test-udp-create-socket-early.c',
'test-udp-dgram-too-big.c',
'test-udp-ipv6.c',
'test-udp-open.c',
'test-udp-options.c',
'test-udp-send-and-recv.c',
'test-udp-send-hang-loop.c',
'test-udp-send-immediate.c',
'test-udp-send-unreachable.c',
'test-udp-multicast-join.c',
'test-udp-multicast-join6.c',
'test-dlerror.c',
'test-udp-multicast-ttl.c',
'test-ip4-addr.c',
'test-ip6-addr.c',
'test-udp-multicast-interface.c',
'test-udp-multicast-interface6.c',
'test-udp-try-send.c',
],
'conditions': [
[ 'OS=="win"', {
'sources': [
'runner-win.c',
'runner-win.h',
'../src/win/snprintf.c',
],
'libraries': [ '-lws2_32' ]
}, { # POSIX
'sources': [
'runner-unix.c',
'runner-unix.h',
],
'conditions': [
[ 'OS != "zos"', {
'defines': [ '_GNU_SOURCE' ],
'cflags': [ '-Wno-long-long' ],
'xcode_settings': {
'WARNING_CFLAGS': [ '-Wno-long-long' ]
}
}],
]},
],
[ 'OS in "mac dragonflybsd freebsd linux netbsd openbsd".split()', {
'link_settings': {
'libraries': [ '-lutil' ],
},
}],
[ 'OS=="solaris"', { # make test-fs.c compile, needs _POSIX_C_SOURCE
'defines': [
'__EXTENSIONS__',
'_XOPEN_SOURCE=500',
],
}],
[ 'OS=="aix"', { # make test-fs.c compile, needs _POSIX_C_SOURCE
'defines': [
'_ALL_SOURCE',
'_XOPEN_SOURCE=500',
],
}],
[ 'OS == "zos"', {
'cflags': [ '-qxplink' ],
'ldflags': [ '-qxplink' ],
}],
['uv_library=="shared_library"', {
'defines': [ 'USING_UV_SHARED=1' ],
'conditions': [
[ 'OS == "zos"', {
'cflags': [ '-Wc,DLL' ],
}],
],
}],
],
'msvs-settings': {
'VCLinkerTool': {
'SubSystem': 1, # /subsystem:console
},
},
},

{
'target_name': 'run-benchmarks',
'type': 'executable',
'dependencies': [ '../uv.gyp:libuv' ],
'sources': [
'benchmark-async.c',
'benchmark-async-pummel.c',
'benchmark-fs-stat.c',
'benchmark-getaddrinfo.c',
'benchmark-list.h',
'benchmark-loop-count.c',
'benchmark-million-async.c',
'benchmark-million-timers.c',
'benchmark-multi-accept.c',
'benchmark-ping-pongs.c',
'benchmark-pound.c',
'benchmark-pump.c',
'benchmark-sizes.c',
'benchmark-spawn.c',
'benchmark-thread.c',
'benchmark-tcp-write-batch.c',
'benchmark-udp-pummel.c',
'dns-server.c',
'echo-server.c',
'blackhole-server.c',
'run-benchmarks.c',
'runner.c',
'runner.h',
'task.h',
],
'conditions': [
[ 'OS=="win"', {
'sources': [
'runner-win.c',
'runner-win.h',
'../src/win/snprintf.c',
],
'libraries': [ '-lws2_32' ]
}, { # POSIX
'defines': [ '_GNU_SOURCE' ],
'sources': [
'runner-unix.c',
'runner-unix.h',
]
}],
[ 'OS == "zos"', {
'cflags': [ '-qxplink' ],
'ldflags': [ '-qxplink' ],
}],
['uv_library=="shared_library"', {
'defines': [ 'USING_UV_SHARED=1' ],
'conditions': [
[ 'OS == "zos"', {
'cflags': [ '-Wc,DLL' ],
}],
],
}],
],
'msvs-settings': {
'VCLinkerTool': {
'SubSystem': 1, # /subsystem:console
},
},
},
],
}

0 comments on commit fdf7c2a

Please sign in to comment.