diff --git a/package.json b/package.json
index 89426884a..e32edbc6e 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,7 @@
"mocha-lcov-reporter": "0.0.1",
"blanket": "~1.1.5",
"sinon": "~1.7.3",
- "nock": "git://github.com/spenceralger/nock.git#c5b07103eb3058035b99118d343ee0dfca666107",
+ "nock": "git://github.com/spenceralger/nock.git#f28dc3c973651830b930793932b4006577260dc1",
"open": "0.0.4",
"testling": "git://github.com/spenceralger/testling.git",
"load-grunt-tasks": "~0.2.0",
diff --git a/scripts/jenkins.sh b/scripts/jenkins.sh
index 1cbcd1660..f7802060f 100755
--- a/scripts/jenkins.sh
+++ b/scripts/jenkins.sh
@@ -1,19 +1,17 @@
-#!/bin/sh
-
-echo "generate the latest version of the yaml-tests"
+#!/bin/bash
+# generate the latest version of the yaml-tests
node scripts/generate/ --no-api 2>&1 > /dev/null
-echo "\n--- unit ---"
+# unit tests
./node_modules/.bin/mocha test/unit/test_*.js \
--require should \
--reporter ../../../test/utils/jenkins-reporter.js \
- 2> test-output-node-unit.xml
+ 2> test/junit-node-unit.xml
-echo "\n--- integration ---"
# run the integration tests
./node_modules/.bin/mocha test/integration/yaml_suite/index.js \
--require should \
--host localhost \
--port $es_port \
--reporter ../../../test/utils/jenkins-reporter.js \
- 2> test-output-node-integration.xml
\ No newline at end of file
+ 2> test/junit-node-integration.xml
\ No newline at end of file
diff --git a/test/integration/yaml_suite/yaml_doc.js b/test/integration/yaml_suite/yaml_doc.js
index 9e244f6d3..ad04b4b5e 100644
--- a/test/integration/yaml_suite/yaml_doc.js
+++ b/test/integration/yaml_suite/yaml_doc.js
@@ -219,7 +219,9 @@ YamlDoc.prototype = {
log('getting', path, 'from', from);
- var steps = path ? path.split('.') : [];
+ var steps = _.map(path ? path.replace(/\\\./g, '\uffff').split('.') : [], function (step) {
+ return step.replace(/\uffff/g, '.');
+ });
var remainingSteps;
for (i = 0; from != null && i < steps.length; i++) {
diff --git a/test/junit-node-integration.xml b/test/junit-node-integration.xml
new file mode 100644
index 000000000..d1528a9da
--- /dev/null
+++ b/test/junit-node-integration.xml
@@ -0,0 +1,15463 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ",
+ "position": 1
+ },
+ {
+ "token": "bar",
+ "start_offset": 4,
+ "end_offset": 7,
+ "type": "",
+ "position": 2
+ }
+ ]
+ }
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+DEBUG: 2013-12-12T23:05:04Z
+ starting request { method: 'DELETE', path: '/*', ignore: [ 404 ], query: {} }
+
+
+TRACE: 2013-12-12T23:05:04Z
+ curl 'http://localhost:9200/*?pretty=true' -XDELETE
+ <- 404
+ {
+ "error": "IndexMissingException[[*] missing]",
+ "status": 404
+ }
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+DEBUG: 2013-12-12T23:05:04Z
+ starting request { method: 'HEAD', requestTimeout: 100, path: '/', query: {} }
+
+
+TRACE: 2013-12-12T23:05:04Z
+ curl 'http://localhost:9200/?pretty=true' -XHEAD
+ <- 200
+
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+DEBUG: 2013-12-12T23:05:04Z
+ starting request { method: 'POST',
+ path: '/_analyze',
+ query: { filters: 'lowercase', text: 'Foo Bar', tokenizer: 'keyword' } }
+
+
+TRACE: 2013-12-12T23:05:04Z
+ curl 'http://localhost:9200/_analyze?pretty=true' -XPOST
+ <- 200
+ {
+ "tokens": [
+ {
+ "token": "foo bar",
+ "start_offset": 0,
+ "end_offset": 7,
+ "type": "word",
+ "position": 1
+ }
+ ]
+ }
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+DEBUG: 2013-12-12T23:05:04Z
+ starting request { method: 'DELETE', path: '/*', ignore: [ 404 ], query: {} }
+
+
+TRACE: 2013-12-12T23:05:04Z
+ curl 'http://localhost:9200/*?pretty=true' -XDELETE
+ <- 404
+ {
+ "error": "IndexMissingException[[*] missing]",
+ "status": 404
+ }
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+DEBUG: 2013-12-12T23:05:04Z
+ starting request { method: 'HEAD', requestTimeout: 100, path: '/', query: {} }
+
+
+TRACE: 2013-12-12T23:05:04Z
+ curl 'http://localhost:9200/?pretty=true' -XHEAD
+ <- 200
+
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+DEBUG: 2013-12-12T23:05:04Z
+ starting request { method: 'POST',
+ path: '/test',
+ body: { mappings: { test: [Object] } },
+ query: {} }
+
+
+TRACE: 2013-12-12T23:05:04Z
+ curl 'http://localhost:9200/test?pretty=true' -XPOST -d '{
+ "mappings": {
+ "test": {
+ "properties": {
+ "text": {
+ "type": "string",
+ "analyzer": "whitespace"
+ }
+ }
+ }
+ }
+ }'
+ <- 200
+ {
+ "ok": true,
+ "acknowledged": true
+ }
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+DEBUG: 2013-12-12T23:05:04Z
+ starting request { method: 'GET',
+ path: '/_cluster/health',
+ query: { wait_for_status: 'yellow' } }
+
+
+TRACE: 2013-12-12T23:05:04Z
+ curl 'http://localhost:9200/_cluster/health?pretty=true' -XGET
+ <- 200
+ {
+ "cluster_name": "elasticsearch",
+ "status": "yellow",
+ "timed_out": false,
+ "number_of_nodes": 1,
+ "number_of_data_nodes": 1,
+ "active_primary_shards": 5,
+ "active_shards": 5,
+ "relocating_shards": 0,
+ "initializing_shards": 0,
+ "unassigned_shards": 5
+ }
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+DEBUG: 2013-12-12T23:05:04Z
+ starting request { method: 'POST',
+ path: '/test/_analyze',
+ query: { field: 'text', text: 'Foo Bar!' } }
+
+
+TRACE: 2013-12-12T23:05:04Z
+ curl 'http://localhost:9200/test/_analyze?pretty=true' -XPOST
+ <- 200
+ {
+ "tokens": [
+ {
+ "token": "Foo",
+ "start_offset": 0,
+ "end_offset": 3,
+ "type": "word",
+ "position": 1
+ },
+ {
+ "token": "Bar!",
+ "start_offset": 4,
+ "end_offset": 8,
+ "type": "word",
+ "position": 2
+ }
+ ]
+ }
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+DEBUG: 2013-12-12T23:05:04Z
+ starting request { method: 'DELETE', path: '/*', ignore: [ 404 ], query: {} }
+
+
+TRACE: 2013-12-12T23:05:04Z
+ curl 'http://localhost:9200/*?pretty=true' -XDELETE
+ <- 200
+ {
+ "ok": true,
+ "acknowledged": true
+ }
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+]]>
+
+
+
+ 9:]\n\n4: \n[white:14->19:]\n\n6: \n[red:25->28:]\n"
+ }
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+DEBUG: 2013-12-12T23:05:04Z
+ starting request { method: 'DELETE', path: '/*', ignore: [ 404 ], query: {} }
+
+
+TRACE: 2013-12-12T23:05:04Z
+ curl 'http://localhost:9200/*?pretty=true' -XDELETE
+ <- 404
+ {
+ "error": "IndexMissingException[[*] missing]",
+ "status": 404
+ }
+
+INFO: 2013-12-12T23:05:04Z
+ Request complete
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/junit-node-unit.xml b/test/junit-node-unit.xml
new file mode 100644
index 000000000..400708dc7
--- /dev/null
+++ b/test/junit-node-unit.xml
@@ -0,0 +1,817 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/utils/make_j_unit_xml.js b/test/utils/make_j_unit_xml.js
index c0433e6e8..adcc312c4 100644
--- a/test/utils/make_j_unit_xml.js
+++ b/test/utils/make_j_unit_xml.js
@@ -77,12 +77,12 @@ function makeJUnitXml(runnerName, testDetails) {
_.each(suiteInfo.suites, serializeSuite);
}
- // if (suiteInfo.stdout.trim()) {
- // suite.ele('system-out', {}).cdata(suiteInfo.stdout);
- // }
- // if (suiteInfo.stderr.trim()) {
- // suite.ele('system-err', {}).cdata(suiteInfo.stderr);
- // }
+ if (suiteInfo.stdout.trim()) {
+ suite.ele('system-out', {}).cdata(suiteInfo.stdout);
+ }
+ if (suiteInfo.stderr.trim()) {
+ suite.ele('system-err', {}).cdata(suiteInfo.stderr);
+ }
});
return suites.toString({ pretty: true});