test-cmd.rb 0.12.1 → 0.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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