19750e409Sopenharmony_ci# ========================================== 29750e409Sopenharmony_ci# Unity Project - A Test Framework for C 39750e409Sopenharmony_ci# Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams 49750e409Sopenharmony_ci# [Released under MIT License. Please refer to license.txt for details] 59750e409Sopenharmony_ci# ========================================== 69750e409Sopenharmony_ci 79750e409Sopenharmony_ciUNITY_ROOT = File.expand_path(File.dirname(__FILE__)) + '/' 89750e409Sopenharmony_ci$verbose = false 99750e409Sopenharmony_ci 109750e409Sopenharmony_cirequire 'rake' 119750e409Sopenharmony_cirequire 'rake/clean' 129750e409Sopenharmony_cirequire UNITY_ROOT + 'rakefile_helper' 139750e409Sopenharmony_cirequire 'rspec/core/rake_task' 149750e409Sopenharmony_ci 159750e409Sopenharmony_ciTEMP_DIRS = [ 169750e409Sopenharmony_ci File.join(UNITY_ROOT, 'build'), 179750e409Sopenharmony_ci File.join(UNITY_ROOT, 'sandbox') 189750e409Sopenharmony_ci] 199750e409Sopenharmony_ci 209750e409Sopenharmony_ciTEMP_DIRS.each do |dir| 219750e409Sopenharmony_ci directory(dir) 229750e409Sopenharmony_ci CLOBBER.include(dir) 239750e409Sopenharmony_ciend 249750e409Sopenharmony_ci 259750e409Sopenharmony_citask :prepare_for_tests => TEMP_DIRS 269750e409Sopenharmony_ci 279750e409Sopenharmony_ciinclude RakefileHelpers 289750e409Sopenharmony_ci 299750e409Sopenharmony_ci# Load proper GCC as defult configuration 309750e409Sopenharmony_ciDEFAULT_CONFIG_FILE = 'gcc_auto_stdint.yml' 319750e409Sopenharmony_ciconfigure_toolchain(DEFAULT_CONFIG_FILE) 329750e409Sopenharmony_ci 339750e409Sopenharmony_cidesc "Test unity with its own unit tests" 349750e409Sopenharmony_citask :unit => [:prepare_for_tests] do 359750e409Sopenharmony_ci run_tests unit_test_files 369750e409Sopenharmony_ciend 379750e409Sopenharmony_ci 389750e409Sopenharmony_cidesc "Test unity's helper scripts" 399750e409Sopenharmony_citask :scripts => [:prepare_for_tests] do 409750e409Sopenharmony_ci Dir['tests/test_*.rb'].each do |scriptfile| 419750e409Sopenharmony_ci require "./"+scriptfile 429750e409Sopenharmony_ci end 439750e409Sopenharmony_ciend 449750e409Sopenharmony_ci 459750e409Sopenharmony_cidesc "Run all rspecs" 469750e409Sopenharmony_ciRSpec::Core::RakeTask.new(:spec) do |t| 479750e409Sopenharmony_ci t.pattern = 'spec/**/*_spec.rb' 489750e409Sopenharmony_ciend 499750e409Sopenharmony_ci 509750e409Sopenharmony_cidesc "Generate test summary" 519750e409Sopenharmony_citask :summary do 529750e409Sopenharmony_ci report_summary 539750e409Sopenharmony_ciend 549750e409Sopenharmony_ci 559750e409Sopenharmony_cidesc "Build and test Unity" 569750e409Sopenharmony_citask :all => [:clean, :prepare_for_tests, :scripts, :unit, :style, :summary] 579750e409Sopenharmony_citask :default => [:clobber, :all] 589750e409Sopenharmony_citask :ci => [:no_color, :default] 599750e409Sopenharmony_citask :cruise => [:no_color, :default] 609750e409Sopenharmony_ci 619750e409Sopenharmony_cidesc "Load configuration" 629750e409Sopenharmony_citask :config, :config_file do |t, args| 639750e409Sopenharmony_ci configure_toolchain(args[:config_file]) 649750e409Sopenharmony_ciend 659750e409Sopenharmony_ci 669750e409Sopenharmony_citask :no_color do 679750e409Sopenharmony_ci $colour_output = false 689750e409Sopenharmony_ciend 699750e409Sopenharmony_ci 709750e409Sopenharmony_citask :verbose do 719750e409Sopenharmony_ci $verbose = true 729750e409Sopenharmony_ciend 739750e409Sopenharmony_ci 749750e409Sopenharmony_cinamespace :style do 759750e409Sopenharmony_ci desc "Check style" 769750e409Sopenharmony_ci task :check do 779750e409Sopenharmony_ci report "\nVERIFYING RUBY STYLE" 789750e409Sopenharmony_ci report execute("rubocop ../auto ../examples ../extras --config .rubocop.yml", true) 799750e409Sopenharmony_ci report "Styling Ruby:PASS" 809750e409Sopenharmony_ci end 819750e409Sopenharmony_ci 829750e409Sopenharmony_ci namespace :check do 839750e409Sopenharmony_ci Dir['../**/*.rb'].each do |f| 849750e409Sopenharmony_ci filename = File.basename(f, '.rb') 859750e409Sopenharmony_ci desc "Check Style of #{filename}" 869750e409Sopenharmony_ci task filename.to_sym => ['style:clean'] do 879750e409Sopenharmony_ci report execute("rubocop #{f} --color --config .rubocop.yml", true) 889750e409Sopenharmony_ci report "Style Checked for #{f}" 899750e409Sopenharmony_ci end 909750e409Sopenharmony_ci end 919750e409Sopenharmony_ci end 929750e409Sopenharmony_ci 939750e409Sopenharmony_ci desc "Fix Style of all C Code" 949750e409Sopenharmony_ci task :c do 959750e409Sopenharmony_ci run_astyle("../src/*.* ../extras/fixture/src/*.*") 969750e409Sopenharmony_ci end 979750e409Sopenharmony_ci 989750e409Sopenharmony_ci namespace :c do 999750e409Sopenharmony_ci Dir['../{src,extras/**}/*.{c,h}'].each do |f| 1009750e409Sopenharmony_ci filename = File.basename(f)[0..-3] 1019750e409Sopenharmony_ci desc "Check Style of #{filename}" 1029750e409Sopenharmony_ci task filename.to_sym do 1039750e409Sopenharmony_ci run_astyle f 1049750e409Sopenharmony_ci end 1059750e409Sopenharmony_ci end 1069750e409Sopenharmony_ci end 1079750e409Sopenharmony_ci 1089750e409Sopenharmony_ci desc "Attempt to Autocorrect style" 1099750e409Sopenharmony_ci task :auto => ['style:clean'] do 1109750e409Sopenharmony_ci execute("rubocop ../auto ../examples ../extras --auto-correct --config .rubocop.yml") 1119750e409Sopenharmony_ci report "Autocorrected What We Could." 1129750e409Sopenharmony_ci end 1139750e409Sopenharmony_ci 1149750e409Sopenharmony_ci desc "Update style todo list" 1159750e409Sopenharmony_ci task :todo => ['style:clean'] do 1169750e409Sopenharmony_ci execute("rubocop ../auto ../examples ../extras --auto-gen-config --config .rubocop.yml") 1179750e409Sopenharmony_ci report "Updated Style TODO List." 1189750e409Sopenharmony_ci end 1199750e409Sopenharmony_ci 1209750e409Sopenharmony_ci task :clean do 1219750e409Sopenharmony_ci File.delete(".rubocop_todo.yml") if File.exists?(".rubocop_todo.yml") 1229750e409Sopenharmony_ci end 1239750e409Sopenharmony_ciend 1249750e409Sopenharmony_ci 1259750e409Sopenharmony_citask :style => ['style:check'] 126