Merge pull request #1071 from haberman/js-tests
Enabled JavaScript tests and added README.md.pull/1069/head
commit
7f82325998
8 changed files with 135 additions and 1 deletions
@ -0,0 +1,14 @@ |
||||
This directory contains Protocol Buffer support for JavaScript. This code works |
||||
in browsers and in Node.js. |
||||
|
||||
The packaging work for this is still in-progress. For now you can just run the |
||||
tests. First you need to build the main C++ distribution because the code |
||||
generator for JavaScript is written in C++: |
||||
|
||||
$ ./autogen.sh |
||||
$ ./configure |
||||
$ make |
||||
|
||||
Then you can run the JavaScript tests in this directory: |
||||
|
||||
$ cd js && gulp test |
@ -0,0 +1,29 @@ |
||||
var gulp = require('gulp'); |
||||
var exec = require('child_process').exec; |
||||
|
||||
gulp.task('genproto', function (cb) { |
||||
exec('../src/protoc --js_out=library=testproto_libs,binary:. -I ../src -I . *.proto ../src/google/protobuf/descriptor.proto', |
||||
function (err, stdout, stderr) { |
||||
console.log(stdout); |
||||
console.log(stderr); |
||||
cb(err); |
||||
}); |
||||
}) |
||||
|
||||
gulp.task('deps', ['genproto'], function (cb) { |
||||
exec('./node_modules/google-closure-library/closure/bin/build/depswriter.py *.js binary/*.js > deps.js', |
||||
function (err, stdout, stderr) { |
||||
console.log(stdout); |
||||
console.log(stderr); |
||||
cb(err); |
||||
}); |
||||
}) |
||||
|
||||
gulp.task('test', ['genproto', 'deps'], function (cb) { |
||||
exec('JASMINE_CONFIG_PATH=jasmine.json ./node_modules/.bin/jasmine', |
||||
function (err, stdout, stderr) { |
||||
console.log(stdout); |
||||
console.log(stderr); |
||||
cb(err); |
||||
}); |
||||
}); |
@ -0,0 +1,11 @@ |
||||
{ |
||||
"spec_dir": "", |
||||
"spec_files": [ |
||||
"*_test.js" |
||||
], |
||||
"helpers": [ |
||||
"node_modules/google-closure-library/closure/goog/bootstrap/nodejs.js", |
||||
"node_loader.js", |
||||
"deps.js" |
||||
] |
||||
} |
@ -0,0 +1,49 @@ |
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
/** |
||||
* @fileoverview Loader that handles goog.require() for Node.JS. |
||||
*/ |
||||
|
||||
var oldLoader = goog.global.CLOSURE_IMPORT_SCRIPT; |
||||
|
||||
goog.global.CLOSURE_IMPORT_SCRIPT = function(src, opt_sourceText) { |
||||
if (opt_sourceText === undefined) { |
||||
try { |
||||
// Load from the current directory.
|
||||
require("./" + src); |
||||
return true; |
||||
} catch (e) { |
||||
// Fall back to the Closure loader.
|
||||
} |
||||
} |
||||
|
||||
return oldLoader(src, opt_sourceText); |
||||
}; |
@ -0,0 +1,21 @@ |
||||
{ |
||||
"name": "google-protobuf", |
||||
"version": "3.0.0-alpha.5", |
||||
"description": "Protocol Buffers for JavaScript", |
||||
"main": "debug.js", |
||||
"dependencies": { |
||||
"google-closure-library": "~20151015.0.0", |
||||
"gulp": "~3.9.0", |
||||
"jasmine": "~2.4.1" |
||||
}, |
||||
"devDependencies": {}, |
||||
"scripts": { |
||||
"test": "./node_modules/gulp/bin/gulp.js test" |
||||
}, |
||||
"repository": { |
||||
"type": "git", |
||||
"url": "https://github.com/google/protobuf/tree/master/js" |
||||
}, |
||||
"author": "", |
||||
"license": "Apache-2.0" |
||||
} |
Loading…
Reference in new issue