summaryrefslogtreecommitdiff
path: root/test/mkmf/test_find_executable.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/mkmf/test_find_executable.rb')
-rw-r--r--test/mkmf/test_find_executable.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/mkmf/test_find_executable.rb b/test/mkmf/test_find_executable.rb
new file mode 100644
index 0000000000..6030a8e605
--- /dev/null
+++ b/test/mkmf/test_find_executable.rb
@@ -0,0 +1,36 @@
+require_relative 'base'
+
+class TestMkmf
+ class TestFindExecutable < TestMkmf
+ class F
+ def do_find_executable(name)
+ find_executable(name)
+ end
+ end
+
+ def test_find_executable
+ bug2669 = '[ruby-core:27912]'
+ path, ENV["PATH"] = ENV["PATH"], path
+ ENV["PATH"] = @tmpdir
+ f = F.new
+ name = "foobar#{$$}#{rand(1000)}"
+ if /mswin\d|mingw|cygwin/ =~ RUBY_PLATFORM
+ exts = %w[.exe .com .cmd .bat]
+ else
+ exts = [""]
+ end
+ exts.each do |ext|
+ full = name+ext
+ begin
+ open(full, "w") {|f| f.chmod(0755)}
+ result = f.do_find_executable(name)
+ ensure
+ File.unlink(full)
+ end
+ assert_equal("#{@tmpdir}/#{name}#{ext}", result, bug2669)
+ end
+ ensure
+ ENV["PATH"] = path
+ end
+ end
+end