-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathmruby-cli.rb
More file actions
79 lines (68 loc) · 2.56 KB
/
mruby-cli.rb
File metadata and controls
79 lines (68 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
require 'open3'
require 'tmpdir'
BIN_PATH = File.join(File.dirname(__FILE__), "../mruby/bin/mruby-cli")
assert('setup') do
Dir.mktmpdir do |tmp_dir|
Dir.chdir(tmp_dir) do
app_name = "new_cli"
output, status = Open3.capture2(BIN_PATH, "--setup", app_name)
assert_true status.success?, "Process did not exit cleanly"
assert_true Dir.exist?(app_name)
Dir.chdir(app_name) do
%W[
.gitignore
mrbgem.rake
build_config.rb
Rakefile
Dockerfile
docker-compose.yml
tasks/package.rake
tasks/test.rake
tools/#{app_name}/#{app_name}.c
mrblib/#{app_name}.rb
bintest/#{app_name}.rb
].each do |file|
assert_true(File.exist?(file), "Could not find #{file}")
assert_include output, " create #{file}"
end
end
end
end
end
assert('setup can compile and run the generated app') do
Dir.mktmpdir do |tmp_dir|
Dir.chdir(tmp_dir) do
app_name = "hello_world"
APP_PATH = File.join("mruby/bin/#{app_name}")
Open3.capture2(BIN_PATH, "--setup", app_name)
Dir.chdir(app_name) do
output, status = Open3.capture2("rake compile")
assert_true status.success?, "`rake compile` did not exit cleanly"
output, status = Open3.capture2(APP_PATH)
assert_true status.success?, "`#{app_name}` did not exit cleanly"
assert_include output, "Hello World"
%w(x86_64-pc-linux-gnu i686-pc-linux-gnu).each do |host|
output, status = Open3.capture2("file mruby/build/x86_64-pc-linux-gnu/bin/#{app_name}")
assert_include output, ", stripped"
end
output, status = Open3.capture2("rake test:bintest")
assert_true status.success?, "`rake test:bintest` did not exit cleanly"
output, status = Open3.capture2("rake test:mtest")
assert_true status.success?, "`rake test:mtest` did not exit cleanly"
assert_false output.include?("Error:"), "mtest has errors"
assert_false output.include?("Failure:"), "mtest has failures"
end
end
end
end
assert('version') do
require_relative '../mrblib/mruby-cli/version'
output, status = Open3.capture2(BIN_PATH, "--version")
assert_true status.success?, "Process did not exit cleanly"
assert_include output, "mruby-cli version #{MRubyCLI::Version::VERSION}"
end
assert('help') do
output, status = Open3.capture2(BIN_PATH, "--help")
assert_true status.success?, "Process did not exit cleanly"
assert_include output, "mruby-cli [switches] [arguments]"
end