Add cpplint to test suite

This commit is contained in:
Lovell Fuller 2015-01-09 12:07:47 +00:00
parent 5dab3c8482
commit b86674f91f
10 changed files with 100 additions and 26 deletions

View File

@ -1,6 +1,8 @@
{ {
"strict": true, "strict": true,
"node": true, "node": true,
"maxparams": 4,
"maxcomplexity": 11,
"globals": { "globals": {
"describe": true, "describe": true,
"it": true "it": true

View File

@ -43,7 +43,8 @@
"mocha": "^2.1.0", "mocha": "^2.1.0",
"mocha-jshint": "^0.0.9", "mocha-jshint": "^0.0.9",
"istanbul": "^0.3.5", "istanbul": "^0.3.5",
"coveralls": "^2.11.2" "coveralls": "^2.11.2",
"node-cpplint": "^0.4.0"
}, },
"license": "Apache 2.0", "license": "Apache 2.0",
"engines": { "engines": {

View File

@ -162,4 +162,4 @@ namespace sharp {
return window_size; return window_size;
} }
} // namespace } // namespace sharp

View File

@ -1,5 +1,5 @@
#ifndef SHARP_COMMON_H #ifndef SRC_COMMON_H_
#define SHARP_COMMON_H #define SRC_COMMON_H_
namespace sharp { namespace sharp {
@ -66,6 +66,6 @@ namespace sharp {
*/ */
int InterpolatorWindowSize(char const *name); int InterpolatorWindowSize(char const *name);
} // namespace } // namespace sharp
#endif #endif // SRC_COMMON_H_

View File

@ -1,8 +1,8 @@
#ifndef SHARP_METADATA_H #ifndef SRC_METADATA_H_
#define SHARP_METADATA_H #define SRC_METADATA_H_
#include "nan.h" #include "nan.h"
NAN_METHOD(metadata); NAN_METHOD(metadata);
#endif #endif // SRC_METADATA_H_

View File

@ -10,8 +10,29 @@
#include "common.h" #include "common.h"
#include "resize.h" #include "resize.h"
using namespace v8; using v8::Handle;
using namespace sharp; using v8::Local;
using v8::Value;
using v8::Object;
using v8::Integer;
using v8::String;
using v8::Array;
using v8::Function;
using v8::Exception;
using sharp::ImageType;
using sharp::DetermineImageType;
using sharp::InitImage;
using sharp::InterpolatorWindowSize;
using sharp::HasProfile;
using sharp::HasAlpha;
using sharp::ExifOrientation;
using sharp::IsJpeg;
using sharp::IsPng;
using sharp::IsWebp;
using sharp::IsTiff;
using sharp::counterProcess;
using sharp::counterQueue;
enum class Canvas { enum class Canvas {
CROP, CROP,
@ -20,11 +41,11 @@ enum class Canvas {
}; };
enum class Angle { enum class Angle {
D0, D0,
D90, D90,
D180, D180,
D270, D270,
DLAST DLAST
}; };
struct ResizeBaton { struct ResizeBaton {
@ -111,6 +132,7 @@ class ResizeWorker : public NanAsyncWorker {
libuv worker libuv worker
*/ */
void Execute() { void Execute() {
// Decrement queued task counter // Decrement queued task counter
g_atomic_int_dec_and_test(&counterQueue); g_atomic_int_dec_and_test(&counterQueue);
// Increment processing task counter // Increment processing task counter
@ -316,7 +338,7 @@ class ResizeWorker : public NanAsyncWorker {
if (vips_flatten(image, &flattened, "background", background, NULL)) { if (vips_flatten(image, &flattened, "background", background, NULL)) {
vips_area_unref(reinterpret_cast<VipsArea*>(background)); vips_area_unref(reinterpret_cast<VipsArea*>(background));
return Error(baton, hook); return Error(baton, hook);
}; }
vips_area_unref(reinterpret_cast<VipsArea*>(background)); vips_area_unref(reinterpret_cast<VipsArea*>(background));
vips_object_local(hook, flattened); vips_object_local(hook, flattened);
image = flattened; image = flattened;
@ -510,7 +532,9 @@ class ResizeWorker : public NanAsyncWorker {
// Post extraction // Post extraction
if (baton->topOffsetPost != -1) { if (baton->topOffsetPost != -1) {
VipsImage *extractedPost; VipsImage *extractedPost;
if (vips_extract_area(image, &extractedPost, baton->leftOffsetPost, baton->topOffsetPost, baton->widthPost, baton->heightPost, NULL)) { if (vips_extract_area(image, &extractedPost,
baton->leftOffsetPost, baton->topOffsetPost, baton->widthPost, baton->heightPost, NULL
)) {
return Error(baton, hook); return Error(baton, hook);
} }
vips_object_local(hook, extractedPost); vips_object_local(hook, extractedPost);
@ -942,7 +966,7 @@ NAN_METHOD(resize) {
baton->output = *String::Utf8Value(options->Get(NanNew<String>("output"))->ToString()); baton->output = *String::Utf8Value(options->Get(NanNew<String>("output"))->ToString());
// Join queue for worker thread // Join queue for worker thread
NanCallback *callback = new NanCallback(args[1].As<v8::Function>()); NanCallback *callback = new NanCallback(args[1].As<Function>());
NanAsyncQueueWorker(new ResizeWorker(callback, baton)); NanAsyncQueueWorker(new ResizeWorker(callback, baton));
// Increment queued task counter // Increment queued task counter

View File

@ -1,8 +1,8 @@
#ifndef SHARP_RESIZE_H #ifndef SRC_RESIZE_H_
#define SHARP_RESIZE_H #define SRC_RESIZE_H_
#include "nan.h" #include "nan.h"
NAN_METHOD(resize); NAN_METHOD(resize);
#endif #endif // SRC_RESIZE_H_

View File

@ -70,6 +70,6 @@ NAN_METHOD(counters) {
NAN_METHOD(libvipsVersion) { NAN_METHOD(libvipsVersion) {
NanScope(); NanScope();
char version[9]; char version[9];
snprintf(version, 9, "%d.%d.%d", vips_version(0), vips_version(1), vips_version(2)); snprintf(version, sizeof(version), "%d.%d.%d", vips_version(0), vips_version(1), vips_version(2));
NanReturnValue(NanNew<String>(version)); NanReturnValue(NanNew<String>(version));
} }

View File

@ -1,5 +1,5 @@
#ifndef SHARP_UTILITIES_H #ifndef SRC_UTILITIES_H_
#define SHARP_UTILITIES_H #define SRC_UTILITIES_H_
#include "nan.h" #include "nan.h"
@ -8,4 +8,4 @@ NAN_METHOD(concurrency);
NAN_METHOD(counters); NAN_METHOD(counters);
NAN_METHOD(libvipsVersion); NAN_METHOD(libvipsVersion);
#endif #endif // SRC_UTILITIES_H_

47
test/unit/cpplint.js Executable file
View File

@ -0,0 +1,47 @@
'use strict';
var fs = require('fs');
var path = require('path');
var assert = require('assert');
var cpplint = require('node-cpplint/lib/');
describe('cpplint', function() {
// List C++ source files
fs.readdirSync(path.join(__dirname, '..', '..', 'src')).forEach(function (source) {
var file = path.join('src', source);
it(file, function(done) {
// Lint each source file
cpplint({
files: [file],
linelength: 140,
filters: {
legal: {
copyright: false
},
build: {
include: false,
include_order: false,
namespaces: false
},
whitespace: {
blank_line: false,
comments: false,
parens: false
}
}
}, function(err, report) {
if (err) {
throw err;
}
var expected = {};
expected[file] = [];
assert.deepEqual(expected, report);
done();
});
});
});
});