build: add node_lib_target_name to cctest deps

Currently the cctest target depend on the node_core_target_name
target. But it is the node_lib_target_name target that compiles the
sources now which means that if a source file in src is updated the
cctest executable will not be re-linked against it, but will remain
unchanged. The code will still be compiled, just not linked which
means that if you are debugging you'll not see the changes and also a
warning will be displayed about this issue.

This commit changes the cctest target to depend on node_lib_target_name.

PR-URL: https://github.com/nodejs/node/pull/18576
Reviewed-By: Matheus Marchini <matheus@sthima.com>
Reviewed-By: Yihong Wang <yh.wang@ibm.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This commit is contained in:
Daniel Bevenius 2018-02-05 14:57:13 +01:00
parent 3d93f39190
commit 30f89dfbf6
3 changed files with 25 additions and 159 deletions

130
node.gyp
View File

@ -921,7 +921,7 @@
'type': 'executable',
'dependencies': [
'<(node_core_target_name)',
'<(node_lib_target_name)',
'rename_node_bin_win',
'deps/gtest/gtest.gyp:gtest',
'node_js2c#host',
@ -930,39 +930,6 @@
'node_dtrace_provider',
],
'variables': {
'obj_path': '<(obj_dir)/<(node_lib_target_name)/src',
'obj_gen_path': '<(obj_dir)/<(node_lib_target_name)/gen',
'obj_tracing_path': '<(obj_dir)/<(node_lib_target_name)/src/tracing',
'obj_suffix': 'o',
'obj_separator': '/',
'conditions': [
['OS=="win"', {
'obj_suffix': 'obj',
}],
['GENERATOR=="ninja"', {
'obj_path': '<(obj_dir)/src',
'obj_gen_path': '<(obj_dir)/gen',
'obj_tracing_path': '<(obj_dir)/src/tracing',
'obj_separator': '/<(node_lib_target_name).',
}, {
'conditions': [
['OS=="win"', {
'obj_path': '<(obj_dir)/<(node_lib_target_name)',
'obj_gen_path': '<(obj_dir)/<(node_lib_target_name)',
'obj_tracing_path': '<(obj_dir)/<(node_lib_target_name)',
}],
['OS=="aix"', {
'obj_path': '<(obj_dir)/<(node_lib_target_name)/src',
'obj_gen_path': '<(obj_dir)/<(node_lib_target_name)/gen',
'obj_tracing_path':
'<(obj_dir)/<(node_lib_target_name)/src/tracing',
}],
]}
]
],
},
'includes': [
'node.gypi'
],
@ -979,7 +946,6 @@
'defines': [ 'NODE_WANT_INTERNALS=1' ],
'sources': [
'test/cctest/node_module_reg.cc',
'test/cctest/node_test_fixture.cc',
'test/cctest/test_aliased_buffer.cc',
'test/cctest/test_base64.cc',
@ -989,120 +955,30 @@
'test/cctest/test_url.cc'
],
'libraries': [
'<(obj_path)<(obj_separator)async_wrap.<(obj_suffix)',
'<(obj_path)<(obj_separator)handle_wrap.<(obj_suffix)',
'<(obj_path)<(obj_separator)env.<(obj_suffix)',
'<(obj_path)<(obj_separator)node.<(obj_suffix)',
'<(obj_path)<(obj_separator)node_buffer.<(obj_suffix)',
'<(obj_path)<(obj_separator)node_debug_options.<(obj_suffix)',
'<(obj_path)<(obj_separator)node_i18n.<(obj_suffix)',
'<(obj_path)<(obj_separator)node_perf.<(obj_suffix)',
'<(obj_path)<(obj_separator)node_platform.<(obj_suffix)',
'<(obj_path)<(obj_separator)node_url.<(obj_suffix)',
'<(obj_path)<(obj_separator)util.<(obj_suffix)',
'<(obj_path)<(obj_separator)string_bytes.<(obj_suffix)',
'<(obj_path)<(obj_separator)string_decoder.<(obj_suffix)',
'<(obj_path)<(obj_separator)string_search.<(obj_suffix)',
'<(obj_path)<(obj_separator)stream_base.<(obj_suffix)',
'<(obj_path)<(obj_separator)node_constants.<(obj_suffix)',
'<(obj_tracing_path)<(obj_separator)agent.<(obj_suffix)',
'<(obj_tracing_path)<(obj_separator)node_trace_buffer.<(obj_suffix)',
'<(obj_tracing_path)<(obj_separator)node_trace_writer.<(obj_suffix)',
'<(obj_tracing_path)<(obj_separator)trace_event.<(obj_suffix)',
'<(obj_gen_path)<(obj_separator)node_javascript.<(obj_suffix)',
],
'conditions': [
[ 'node_use_openssl=="true"', {
'conditions': [
['node_target_type!="static_library"', {
'libraries': [
'<(obj_path)<(obj_separator)node_crypto.<(obj_suffix)',
'<(obj_path)<(obj_separator)node_crypto_bio.<(obj_suffix)',
'<(obj_path)<(obj_separator)node_crypto_clienthello.<(obj_suffix)',
'<(obj_path)<(obj_separator)tls_wrap.<(obj_suffix)',
],
}],
],
'defines': [
'HAVE_OPENSSL=1',
],
}],
[ 'node_use_perfctr=="true"', {
'defines': [ 'HAVE_PERFCTR=1' ],
'libraries': [
'<(obj_path)<(obj_separator)node_counters.<(obj_suffix)',
'<(obj_path)<(obj_separator)'
'node_win32_perfctr_provider.<(obj_suffix)',
],
}],
['v8_enable_inspector==1', {
'sources': [
'test/cctest/test_inspector_socket.cc',
'test/cctest/test_inspector_socket_server.cc'
],
'conditions': [
['node_target_type!="static_library"', {
'libraries': [
'<(obj_path)<(obj_separator)inspector_agent.<(obj_suffix)',
'<(obj_path)<(obj_separator)inspector_io.<(obj_suffix)',
'<(obj_path)<(obj_separator)inspector_js_api.<(obj_suffix)',
'<(obj_path)<(obj_separator)inspector_socket.<(obj_suffix)',
'<(obj_path)<(obj_separator)inspector_socket_server.<(obj_suffix)',
],
}],
],
'defines': [
'HAVE_INSPECTOR=1',
],
}],
[ 'node_use_dtrace=="true" and node_target_type!="static_library"', {
'libraries': [
'<(obj_path)<(obj_separator)node_dtrace.<(obj_suffix)',
],
'conditions': [
['OS!="mac" and OS!="linux"', {
'libraries': [
'<(obj_path)<(obj_separator)node_dtrace_provider.<(obj_suffix)',
'<(obj_path)<(obj_separator)node_dtrace_ustack.<(obj_suffix)',
]
}],
['OS=="linux"', {
'libraries': [
'<(SHARED_INTERMEDIATE_DIR)<(obj_separator)'
'node_dtrace_provider.<(obj_suffix)',
]
}],
],
}, {
'conditions': [
[ 'node_use_etw=="true" and OS=="win"', {
'libraries': [
'<(obj_path)<(obj_separator)node_dtrace.<(obj_suffix)',
'<(obj_path)<(obj_separator)'
'node_win32_etw_provider.<(obj_suffix)',
],
}]
]
}],
[ 'OS=="win" and node_target_type!="static_library"', {
'libraries': [
'<(obj_path)<(obj_separator)backtrace_win32.<(obj_suffix)',
],
}, {
'conditions': [
['node_target_type!="static_library"', {
'libraries': [
'<(obj_path)<(obj_separator)backtrace_posix.<(obj_suffix)',
],
}],
],
'defines': [ 'HAVE_INSPECTOR=0' ]
}],
['OS=="solaris"', {
'ldflags': [ '-I<(SHARED_INTERMEDIATE_DIR)' ]
}],
]
],
}
], # end targets

View File

@ -1,30 +0,0 @@
// Need to create empty definition for these modules'
// registration function for cctest. Because when
// building cctest, the definitions for the following
// registration functions are not included.
void _register_cares_wrap() {}
void _register_config() {}
void _register_contextify() {}
void _register_domain() {}
void _register_fs() {}
void _register_fs_event_wrap() {}
void _register_http2() {}
void _register_http_parser() {}
void _register_js_stream() {}
void _register_module_wrap() {}
void _register_os() {}
void _register_pipe_wrap() {}
void _register_process_wrap() {}
void _register_serdes() {}
void _register_signal_wrap() {}
void _register_spawn_sync() {}
void _register_stream_wrap() {}
void _register_tcp_wrap() {}
void _register_timer_wrap() {}
void _register_trace_events() {}
void _register_tty_wrap() {}
void _register_udp_wrap() {}
void _register_util() {}
void _register_uv() {}
void _register_v8() {}
void _register_zlib() {}

View File

@ -1,5 +1,3 @@
#include "node_postmortem_metadata.cc"
#include "gtest/gtest.h"
#include "node.h"
#include "node_internals.h"
@ -7,6 +5,28 @@
#include "req_wrap-inl.h"
#include "tracing/agent.h"
#include "v8.h"
#include "v8abbr.h"
extern "C" {
extern uintptr_t
nodedbg_offset_HandleWrap__handle_wrap_queue___ListNode_HandleWrap;
extern uintptr_t
nodedbg_offset_Environment__handle_wrap_queue___Environment_HandleWrapQueue;
extern int debug_symbols_generated;
extern int nodedbg_const_Environment__kContextEmbedderDataIndex__int;
extern uintptr_t
nodedbg_offset_Environment_HandleWrapQueue__head___ListNode_HandleWrap;
extern uintptr_t
nodedbg_offset_Environment__req_wrap_queue___Environment_ReqWrapQueue;
extern uintptr_t nodedbg_offset_ExternalString__data__uintptr_t;
extern uintptr_t nodedbg_offset_ListNode_ReqWrap__next___uintptr_t;
extern uintptr_t nodedbg_offset_ReqWrap__req_wrap_queue___ListNode_ReqWrapQueue;
extern uintptr_t nodedbg_offset_ListNode_HandleWrap__next___uintptr_t;
extern uintptr_t
nodedbg_offset_Environment_ReqWrapQueue__head___ListNode_ReqWrapQueue;
extern uintptr_t
nodedbg_offset_BaseObject__persistent_handle___v8_Persistent_v8_Object;
}
class DebugSymbolsTest : public EnvironmentTestFixture {};