From 3727ae0d7dc940ee3b2bc238fc80cd3605954715 Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Thu, 24 Dec 2015 13:56:03 +1100 Subject: test: use addon.md block headings as test dir names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit instead of doc-* PR-URL: https://github.com/nodejs/node/pull/4412 Reviewed-By: James M Snell Reviewed-By: Rich Trott Reviewed-By: Johan Bergström --- tools/doc/addon-verify.js | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) (limited to 'tools/doc/addon-verify.js') diff --git a/tools/doc/addon-verify.js b/tools/doc/addon-verify.js index cc80a7bd32..68c46f06bc 100644 --- a/tools/doc/addon-verify.js +++ b/tools/doc/addon-verify.js @@ -1,31 +1,36 @@ -var fs = require('fs'); -var path = require('path'); -var marked = require('marked'); +'use strict'; -var doc = path.resolve(__dirname, '..', '..', 'doc', 'api', 'addons.markdown'); -var verifyDir = path.resolve(__dirname, '..', '..', 'test', 'addons'); +const fs = require('fs'); +const path = require('path'); +const marked = require('marked'); -var contents = fs.readFileSync(doc).toString(); +const doc = path.resolve(__dirname, '..', '..', 'doc', 'api', 'addons.markdown'); +const verifyDir = path.resolve(__dirname, '..', '..', 'test', 'addons'); -var tokens = marked.lexer(contents, {}); -var files = null; -var id = 0; +const contents = fs.readFileSync(doc).toString(); + +let tokens = marked.lexer(contents, {}); +let files = null; +let blockName; +let id = 0; // Just to make sure that all examples will be processed tokens.push({ type: 'heading' }); var oldDirs = fs.readdirSync(verifyDir); oldDirs = oldDirs.filter(function(dir) { - return /^doc-/.test(dir); + return /^\d{2}_/.test(dir); }).map(function(dir) { return path.resolve(verifyDir, dir); }); for (var i = 0; i < tokens.length; i++) { var token = tokens[i]; - if (token.type === 'heading') { + if (token.type === 'heading' && token.text) { + blockName = token.text if (files && Object.keys(files).length !== 0) { verifyFiles(files, + blockName, console.log.bind(null, 'wrote'), function(err) { if (err) throw err; }); } @@ -48,15 +53,16 @@ function once(fn) { }; } -function verifyFiles(files, onprogress, ondone) { - var dir = path.resolve(verifyDir, 'doc-' + id++); - +function verifyFiles(files, blockName, onprogress, ondone) { // must have a .cc and a .js to be a valid test if (!Object.keys(files).some((name) => /\.cc$/.test(name)) || !Object.keys(files).some((name) => /\.js$/.test(name))) { return; } + blockName = blockName.toLowerCase().replace(/\s/g, '_').replace(/[^a-z\d_]/g, '') + let dir = path.resolve(verifyDir, `${(++id < 10 ? '0' : '') + id}_${blockName}`); + files = Object.keys(files).map(function(name) { return { path: path.resolve(dir, name), -- cgit v1.2.3