test: lint addon tests

Add files in test/addon to the `make cpplint` rule and fix up existing
style issues.  Tests scraped from doc/api/addon.md are filtered out
because those are predominantly for illustrative purposes.

PR-URL: https://github.com/nodejs/node/pull/2427
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
This commit is contained in:
Ben Noordhuis 2015-08-18 20:29:10 +02:00
parent 3ba9793d53
commit 8f4022e44b
5 changed files with 39 additions and 34 deletions

View File

@ -483,8 +483,19 @@ CPPLINT_EXCLUDE += src/node_win32_perfctr_provider.cc
CPPLINT_EXCLUDE += src/queue.h CPPLINT_EXCLUDE += src/queue.h
CPPLINT_EXCLUDE += src/tree.h CPPLINT_EXCLUDE += src/tree.h
CPPLINT_EXCLUDE += src/v8abbr.h CPPLINT_EXCLUDE += src/v8abbr.h
CPPLINT_EXCLUDE += $(wildcard test/addons/doc-*/*.cc test/addons/doc-*/*.h)
CPPLINT_FILES = $(filter-out $(CPPLINT_EXCLUDE), $(wildcard src/*.cc src/*.h src/*.c tools/icu/*.h tools/icu/*.cc deps/debugger-agent/include/* deps/debugger-agent/src/*)) CPPLINT_FILES = $(filter-out $(CPPLINT_EXCLUDE), $(wildcard \
deps/debugger-agent/include/* \
deps/debugger-agent/src/* \
src/*.c \
src/*.cc \
src/*.h \
test/addons/*/*.cc \
test/addons/*/*.h \
tools/icu/*.cc \
tools/icu/*.h \
))
cpplint: cpplint:
@$(PYTHON) tools/cpplint.py $(CPPLINT_FILES) @$(PYTHON) tools/cpplint.py $(CPPLINT_FILES)

View File

@ -3,35 +3,33 @@
#include <v8.h> #include <v8.h>
#include <uv.h> #include <uv.h>
using namespace v8;
using namespace node;
struct async_req { struct async_req {
uv_work_t req; uv_work_t req;
int input; int input;
int output; int output;
Persistent<Function> callback; v8::Persistent<v8::Function> callback;
}; };
void DoAsync(uv_work_t* r) { void DoAsync(uv_work_t* r) {
async_req* req = reinterpret_cast<async_req*>(r->data); async_req* req = reinterpret_cast<async_req*>(r->data);
sleep(1); // simulate CPU intensive process... sleep(1); // Simulate CPU intensive process...
req->output = req->input * 2; req->output = req->input * 2;
} }
void AfterAsync(uv_work_t* r) { void AfterAsync(uv_work_t* r) {
Isolate* isolate = Isolate::GetCurrent(); v8::Isolate* isolate = v8::Isolate::GetCurrent();
HandleScope scope(isolate); v8::HandleScope scope(isolate);
async_req* req = reinterpret_cast<async_req*>(r->data); async_req* req = reinterpret_cast<async_req*>(r->data);
Handle<Value> argv[2] = { v8::Handle<v8::Value> argv[2] = {
Null(isolate), v8::Null(isolate),
Integer::New(isolate, req->output) v8::Integer::New(isolate, req->output)
}; };
TryCatch try_catch; v8::TryCatch try_catch(isolate);
Local<Function> callback = Local<Function>::New(isolate, req->callback); v8::Local<v8::Function> callback =
v8::Local<v8::Function>::New(isolate, req->callback);
callback->Call(isolate->GetCurrentContext()->Global(), 2, argv); callback->Call(isolate->GetCurrentContext()->Global(), 2, argv);
// cleanup // cleanup
@ -39,13 +37,13 @@ void AfterAsync(uv_work_t* r) {
delete req; delete req;
if (try_catch.HasCaught()) { if (try_catch.HasCaught()) {
FatalException(isolate, try_catch); node::FatalException(isolate, try_catch);
} }
} }
void Method(const FunctionCallbackInfo<Value>& args) { void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
Isolate* isolate = Isolate::GetCurrent(); v8::Isolate* isolate = v8::Isolate::GetCurrent();
HandleScope scope(isolate); v8::HandleScope scope(isolate);
async_req* req = new async_req; async_req* req = new async_req;
req->req.data = req; req->req.data = req;
@ -53,7 +51,7 @@ void Method(const FunctionCallbackInfo<Value>& args) {
req->input = args[0]->IntegerValue(); req->input = args[0]->IntegerValue();
req->output = 0; req->output = 0;
Local<Function> callback = Local<Function>::Cast(args[1]); v8::Local<v8::Function> callback = v8::Local<v8::Function>::Cast(args[1]);
req->callback.Reset(isolate, callback); req->callback.Reset(isolate, callback);
uv_queue_work(uv_default_loop(), uv_queue_work(uv_default_loop(),
@ -62,7 +60,7 @@ void Method(const FunctionCallbackInfo<Value>& args) {
(uv_after_work_cb)AfterAsync); (uv_after_work_cb)AfterAsync);
} }
void init(Handle<Object> exports, Handle<Object> module) { void init(v8::Handle<v8::Object> exports, v8::Handle<v8::Object> module) {
NODE_SET_METHOD(module, "exports", Method); NODE_SET_METHOD(module, "exports", Method);
} }

View File

@ -21,7 +21,7 @@ static void at_exit_cb1(void* arg) {
HandleScope handle_scope(isolate); HandleScope handle_scope(isolate);
assert(arg == 0); assert(arg == 0);
Local<Object> obj = Object::New(isolate); Local<Object> obj = Object::New(isolate);
assert(!obj.IsEmpty()); // assert VM is still alive assert(!obj.IsEmpty()); // Assert VM is still alive.
assert(obj->IsObject()); assert(obj->IsObject());
at_exit_cb1_called++; at_exit_cb1_called++;
} }

View File

@ -1,15 +1,13 @@
#include <node.h> #include <node.h>
#include <v8.h> #include <v8.h>
using namespace v8; void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Isolate* isolate = v8::Isolate::GetCurrent();
void Method(const FunctionCallbackInfo<Value>& args) { v8::HandleScope scope(isolate);
Isolate* isolate = Isolate::GetCurrent(); args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, "world"));
HandleScope scope(isolate);
args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));
} }
void init(Handle<Object> exports, Handle<Object> module) { void init(v8::Handle<v8::Object> exports, v8::Handle<v8::Object> module) {
NODE_SET_METHOD(module, "exports", Method); NODE_SET_METHOD(module, "exports", Method);
} }

View File

@ -1,15 +1,13 @@
#include <node.h> #include <node.h>
#include <v8.h> #include <v8.h>
using namespace v8; void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Isolate* isolate = v8::Isolate::GetCurrent();
void Method(const FunctionCallbackInfo<Value>& args) { v8::HandleScope scope(isolate);
Isolate* isolate = Isolate::GetCurrent(); args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, "world"));
HandleScope scope(isolate);
args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));
} }
void init(Handle<Object> target) { void init(v8::Handle<v8::Object> target) {
NODE_SET_METHOD(target, "hello", Method); NODE_SET_METHOD(target, "hello", Method);
} }