Gtk4-tutorial/test/test_rakefile.rb
2022-04-25 10:33:47 +09:00

60 lines
1.2 KiB
Ruby

# test_lib_sec_file.rb
require 'minitest/autorun'
require 'fileutils'
# require_relative "../Rakefile"
class Test_rakefile < Minitest::Test
include FileUtils
def dirname(file)
File.dirname(file)
end
def test_rakefile
rakefile = File.read("../Rakefile")
c_files = rakefile.match(/^def c_files.*?^end\n/m)[0]
eval c_files
src = <<~'EOS'
## meson.build
@@@include
tfe5/meson.build
@@@
## tfe.gresource.xml
@@@include
tfe5/tfe.gresource.xml
@@@
## tfe.ui
@@@include
tfe5/tfe.ui
@@@
## tfe.h
@@@include
tfe5/tfe.h
@@@
## tfeapplication.c
@@@include
tfe5/tfeapplication.c app_startup app_open
@@@
EOS
temp_dir = get_temp_name()
Dir.mkdir temp_dir unless Dir.exist? temp_dir
path = "#{temp_dir}/secXX.src.md"
File.write(path, src)
expected = ["tfe5/meson.build", "tfe5/tfe.gresource.xml", "tfe5/tfe.ui", "tfe5/tfe.h", "tfe5/tfeapplication.c"]\
.map{|f| "#{temp_dir}/#{f}"}
actual = c_files(path)
remove_entry_secure(temp_dir)
assert_equal expected.sort, actual.sort
end
def get_temp_name
"temp_"+Time.now.to_f.to_s.gsub(/\./,'')
end
end