Skip to content

Commit

Permalink
Merge pull request #30 from tonystone/script-changes
Browse files Browse the repository at this point in the history
Script changes
  • Loading branch information
tonystone committed Oct 20, 2016
2 parents 6fe2e55 + 00c47be commit 7214bb3
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 19 deletions.
74 changes: 56 additions & 18 deletions Scripts/process_test_files.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@
#
# Created by Tony Stone on 5/4/16.
#
require 'getoptlong'
require 'fileutils'
require 'pathname'

include FileUtils

def header(fileName)
Expand Down Expand Up @@ -82,9 +85,9 @@ def createExtensionFile(fileName, classes)
}
end

def createLinuxMain(files)
def createLinuxMain(testsDirectory, allTestSubDirectories, files)

fileName = "Tests/LinuxMain.swift"
fileName = testsDirectory + "/LinuxMain.swift"
print "Creating file: " + fileName + "\n"

File.open(fileName, 'w') { |file|
Expand All @@ -93,7 +96,9 @@ def createLinuxMain(files)
file.write "\n"

file.write "#if os(Linux) || os(FreeBSD)\n"
file.write " @testable import TraceLogTests\n"
for testSubDirectory in allTestSubDirectories
file.write " @testable import " + testSubDirectory + "\n"
end
file.write "\n"
file.write " XCTMain([\n"

Expand Down Expand Up @@ -180,24 +185,56 @@ def parseSourceFile(fileName)
# Main routine
#
#

testsDirectory="Tests"

options = GetoptLong.new(
[ '--tests-dir', GetoptLong::OPTIONAL_ARGUMENT ]
)
options.quiet = true

begin
options.each do |option, value|
case option
when '--tests-dir'
testsDirectory=value
end
end
rescue GetoptLong::InvalidOption
end

allTestSubDirectories = Array.new
allFiles = Array.new

Dir['Tests/TraceLogTests/*Tests.swift'].each do |fileName|
Dir[testsDirectory + '/*'].each do |subDirectory|

if File.file? fileName
if File.directory?(subDirectory)

fileClasses = parseSourceFile(fileName)
directoryHasClasses = false

#
# If there are classes in the
# test source file, create an extension
# file for it.
#
if fileClasses.count > 0

createExtensionFile(fileName, fileClasses)

allFiles << fileClasses
Dir[subDirectory + '/*Test{s,}.swift'].each do |fileName|

if File.file? fileName

fileClasses = parseSourceFile(fileName)

#
# If there are classes in the
# test source file, create an extension
# file for it.
#
if fileClasses.count > 0

createExtensionFile(fileName, fileClasses)

directoryHasClasses = true
allFiles << fileClasses
end
end
end

if directoryHasClasses
allTestSubDirectories << Pathname.new(subDirectory).split.last.to_s
end
end
end
Expand All @@ -206,6 +243,7 @@ def parseSourceFile(fileName)
# Last step is the create a LinuxMain.swift file that
# references all the classes and funcs in the source files.
#
createLinuxMain(allFiles)

if allFiles.count > 0
createLinuxMain(testsDirectory, allTestSubDirectories, allFiles)
end
# eof
2 changes: 1 addition & 1 deletion Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ Vagrant.configure("2") do |config|
#
# Install the needed development and admin packages
#
sudo apt-get --assume-yes install clang libicu-dev libcurl3
sudo apt-get --assume-yes install clang libicu-dev libcurl3 libpython2.7-dev
#
# Import the gpg keys
#
Expand Down

0 comments on commit 7214bb3

Please sign in to comment.