From 8ba0d1c608c1afe64c3c6b72d9ec7a20b1191e63 Mon Sep 17 00:00:00 2001 From: Colin Eberhardt Date: Wed, 12 Aug 2015 06:17:53 +0100 Subject: [PATCH] Added transpile and 'c' tests --- Gruntfile.js | 33 +++++++++++++++++++++++++++++++-- package.json | 2 ++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index ba9eab71..e67685db 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -10,9 +10,14 @@ module.exports = function(grunt) { distFolder: 'dist', srcFolder: 'src', testFolder: 'src/__tests__', + cTestFiles: 'src/__tests__/Layout-test.c src/Layout.c src/Layout-test-utils.c', + cTestOutput: 'c_test' }, - clean: ['<%= paths.distFolder %>'], + clean: { + dist: ['<%= paths.distFolder %>'], + ctest: ['<%= paths.cTestOutput %>'] + }, eslint: { options: { @@ -57,10 +62,34 @@ module.exports = function(grunt) { singleRun: true } } + }, + + execute: { + transpile: { + src: ['<%= paths.srcFolder %>/transpile.js'] + } + }, + + shell: { + ccompile: { + command: 'gcc -std=c99 -Werror -Wno-padded <%= paths.cTestFiles %> -lm -o "./<%= paths.cTestOutput %>"' + }, + ctestExecute: { + command: './<%= paths.cTestOutput %>' + } } }); - grunt.registerTask('build', ['eslint', 'clean', 'karma' ,'includereplace', 'uglify']); + + grunt.registerTask('ctest', ['shell:ccompile', 'shell:ctestExecute', 'clean:ctest']); + + grunt.registerTask('transpile', ['execute:transpile', 'ctest']); + + grunt.registerTask('test-javascript', ['eslint', 'karma']); + + grunt.registerTask('package-javascript', ['clean:dist', 'includereplace', 'uglify']); + + grunt.registerTask('build', ['test-javascript', 'transpile', 'package-javascript']); grunt.registerTask('default', ['build']); }; diff --git a/package.json b/package.json index a3550da1..6b933ca3 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,10 @@ "grunt-contrib-copy": "^0.8.0", "grunt-contrib-uglify": "^0.9.1", "grunt-eslint": "^17.1.0", + "grunt-execute": "^0.2.2", "grunt-include-replace": "^3.1.0", "grunt-karma": "^0.12.0", + "grunt-shell": "^1.1.2", "jasmine-core": "^2.2.0", "karma": "^0.13.8", "karma-chrome-launcher": "^0.1.7",