test-cmd.rb 0.12.1 → 0.12.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67a69e56d58ed586edecb9b4792bbc54913f2044a6468ce6d098744142cf78a0
4
- data.tar.gz: 713bd38cbe6812e61e8847e156e16732cdcfc72026f206bd9df70c03c6d8a946
3
+ metadata.gz: 06212f56cec2eb07f6ac4cb7bd4bc4e434b8ae624a69d8400c2572ab951d788c
4
+ data.tar.gz: c2efc1ddf888419967d0d71642a09ce3674fc3489062ced72cb72dabdb08b2d3
5
5
  SHA512:
6
- metadata.gz: b8f1e8928b018372d5d6247300509f249bb3f7934a04b4a7356beff15d9c223a396657e1bb5e050bb7777b36185f2cf106618330f73df6939204c430a25eb584
7
- data.tar.gz: 1f76220a3ab003bf434ab2dd7d604f7abe0577543abd5d86afee3b0a1fb82c3f164f8e6ba62489c1cacb9193c44860cd3fb152e93c3bcf4491400584805dde41
6
+ metadata.gz: 4f1cc4b19a41ded01e5e4f0969c1b8b96243ebec4db253b3801f75944e8972610848e37911bf48e4dc568dd254c01f9b2d33ef0fcd0ca7ac5f20ad44d1acfff7
7
+ data.tar.gz: b74fad1aed809af6e546dc0f5077b2d5243835a5d531002a66d767a69e63f63e8f16aaf56b2b61ac98fe6506e5d63f199f25176f007415276a19091cf8a4c30f
data/lib/test/cmd.rb CHANGED
@@ -55,12 +55,15 @@ class Test::Cmd
55
55
  Process.spawn(@cmd, *@argv, {out: out.w, err: err.w})
56
56
  Process.wait
57
57
  @status = $?
58
+ rescue Errno::ENOENT => ex
59
+ @cmd, @argv, @stderr = "false", [], ex.message
60
+ retry
58
61
  end
59
62
  loop do
60
- break unless t.alive?
61
63
  io, _ = IO.select([out.r, err.r], nil, nil, 0.01)
62
64
  io&.include?(out.r) ? @stdout << out.r.read(1) : nil
63
65
  io&.include?(err.r) ? @stderr << err.r.read(1) : nil
66
+ break unless t.alive? || IO.select([out.r, err.r], nil, nil, 0.01)
64
67
  end
65
68
  ensure
66
69
  [out, err].each(&:close)
@@ -104,6 +107,7 @@ class Test::Cmd
104
107
  def exit_status
105
108
  status.exitstatus
106
109
  end
110
+ alias_method :exitstatus, :exit_status
107
111
 
108
112
  ##
109
113
  # @return [Boolean]
data/test/cmd_test.rb CHANGED
@@ -36,6 +36,10 @@ class Test::Cmd
36
36
  assert_equal true, ruby("exit 0").status.success?
37
37
  assert_equal true, ruby("exit 0").success?
38
38
  end
39
+
40
+ def test_nonexistent_command
41
+ assert_equal false, cmd("/a/path/that/is/not/found").success?
42
+ end
39
43
  end
40
44
 
41
45
  ##
@@ -61,6 +65,11 @@ class Test::Cmd
61
65
  CODE
62
66
  assert_equal "foo\nbar\n", ruby(code).stdout
63
67
  end
68
+
69
+ def test_nonexistent_command
70
+ assert_equal "No such file or directory - /a/path/that/is/not/found",
71
+ cmd("/a/path/that/is/not/found").stderr
72
+ end
64
73
  end
65
74
 
66
75
  ##
data/test-cmd.rb.gemspec CHANGED
@@ -5,7 +5,7 @@ Gem::Specification.new do |gem|
5
5
  gem.authors = ["0x1eef"]
6
6
  gem.email = ["0x1eef@protonmail.com"]
7
7
  gem.homepage = "https://github.com/0x1eef/test-cmd.rb#readme"
8
- gem.version = "0.12.1"
8
+ gem.version = "0.12.3"
9
9
  gem.required_ruby_version = ">= 3.0"
10
10
  gem.licenses = ["0BSD"]
11
11
  gem.files = `git ls-files`.split($/)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-cmd.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.12.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - '0x1eef'
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-13 00:00:00.000000000 Z
11
+ date: 2024-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-unit