net-ssh / net-scp

Pure Ruby implementation of the SCP protocol
http://github.com/delano/net-scp
MIT License
152 stars 62 forks source link

test fails on ruby2.7 #50

Closed terceiro closed 4 years ago

terceiro commented 4 years ago
$ rake test
Mocha deprecation warning at /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in `require': Require 'mocha/test_unit', 'mocha/minitest' or 'mocha/api' instead of 'mocha/setup'.
Loaded suite /home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/rake-13.0.1/lib/rake/rake_test_loader
Started
......E
==============================================================================================================================================================================
F
==============================================================================================================================================================================
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit.rb:511:in `block (2 levels) in <top (required)>'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/autorunner.rb:66:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/autorunner.rb:438:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/autorunner.rb:495:in `change_work_directory'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/autorunner.rb:439:in `block in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnerutilities.rb:24:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunner.rb:25:in `start'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunner.rb:40:in `start_mediator'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:39:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:39:in `catch'/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener'/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:45:in `block (2 levels) in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite'/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:53:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:124:in `run_test'/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:53:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:124:in `run_test'/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:53:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:124:in `run_test'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:527:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:527:in `catch'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:528:in `block in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb:286:in `run_setup'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb:251:in `run_fixture'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb:270:in `block in create_fixtures_runner'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb:270:in `block in create_fixtures_runner'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb:270:in `block in create_fixtures_runner'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:529:in `block (2 levels) in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:535:in `rescue in block (2 levels) in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:837:in `handle_exception'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:837:in `each'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:841:in `block in handle_exception'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/error.rb:93:in `handle_all_exception'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/error.rb:121:in `add_error'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/error.rb:131:in `add_error'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testresult.rb:128:in `notify_fault'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `notify_listeners'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `each'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `block in notify_listeners'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:98:in `block in with_listener'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `notify_listeners'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `each'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `block in notify_listeners'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:101:in `add_fault'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:504:in `output_progress_in_detail'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:200:in `output_fault_in_detail'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:236:in `output_fault_backtrace'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:236:in `each_with_index'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:236:in `each'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:239:in `block in output_fault_backtrace'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:265:in `fetch_code_snippet'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/code-snippet-fetcher.rb:10:in `fetch'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/code-snippet-fetcher.rb:22:in `source'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/code-snippet-fetcher.rb:29:in `read_source'
Failure: test_download_file_with_metacharacters_in_name_should_escape_remote_file_name(TestDownload):
  unexpected invocation: File.open("/home/terceiro/src/debian/ruby-team/ruby-net-scp/test/test_download.rb", "rb") { ... }
  satisfied expectations:
  - allowed any number of times, invoked never: File.new("/path/to/local/\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\v\f\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\e\u001C\u001D\u001E\u001F !\"\#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007F.txt", "wb", 438)
  - allowed any number of times, invoked never: File.open("/path/to/local/\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\v\f\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\e\u001C\u001D\u001E\u001F !\"\#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007F.txt", "rb")
  - allowed any number of times, invoked never: File.file?("/path/to/local/\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\v\f\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\e\u001C\u001D\u001E\u001F !\"\#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007F.txt")
  - allowed any number of times, invoked never: File.directory?("/path/to/local/\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\v\f\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\e\u001C\u001D\u001E\u001F !\"\#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007F.txt")
  - allowed any number of times, invoked never: File.stat("/path/to/local/\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\v\f\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\e\u001C\u001D\u001E\u001F !\"\#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007F.txt")
==============================================================================================================================================================================
.................E
==============================================================================================================================================================================
F
==============================================================================================================================================================================
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit.rb:511:in `block (2 levels) in <top (required)>'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/autorunner.rb:66:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/autorunner.rb:438:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/autorunner.rb:495:in `change_work_directory'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/autorunner.rb:439:in `block in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnerutilities.rb:24:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunner.rb:25:in `start'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunner.rb:40:in `start_mediator'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:39:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:39:in `catch'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:45:in `block (2 levels) in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:53:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:124:in `run_test'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:53:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:124:in `run_test'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:53:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb:124:in `run_test'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:527:in `run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:527:in `catch'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:528:in `block in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb:286:in `run_setup'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb:251:in `run_fixture'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb:270:in `block in create_fixtures_runner'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb:270:in `block in create_fixtures_runner'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb:270:in `block in create_fixtures_runner'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:529:in `block (2 levels) in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:535:in `rescue in block (2 levels) in run'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:837:in `handle_exception'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:837:in `each'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb:841:in `block in handle_exception'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/error.rb:93:in `handle_all_exception'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/error.rb:121:in `add_error'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/error.rb:131:in `add_error'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testresult.rb:128:in `notify_fault'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `notify_listeners'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `each'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `block in notify_listeners'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb:98:in `block in with_listener'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `notify_listeners'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `each'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb:78:in `block in notify_listeners'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:101:in `add_fault'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:504:in `output_progress_in_detail'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:200:in `output_fault_in_detail'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:236:in `output_fault_backtrace'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:236:in `each_with_index'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:236:in `each'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:239:in `block in output_fault_backtrace'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb:265:in `fetch_code_snippet'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/code-snippet-fetcher.rb:10:in `fetch'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/code-snippet-fetcher.rb:22:in `source'
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/code-snippet-fetcher.rb:29:in `read_source'
Failure: test_upload_file_with_metacharacters_in_name_should_escape_remote_file_name(TestUpload):
  unexpected invocation: File.open("/home/terceiro/src/debian/ruby-team/ruby-net-scp/test/test_upload.rb", "rb") { ... }
  satisfied expectations:
  - allowed any number of times, invoked never: File.new("/path/to/local/\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\v\f\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\e\u001C\u001D\u001E\u001F !\"\#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007F.txt", "wb", 438)
  - allowed any number of times, invoked never: File.open("/path/to/local/\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\v\f\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\e\u001C\u001D\u001E\u001F !\"\#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007F.txt", "rb")
  - allowed any number of times, invoked never: File.file?("/path/to/local/\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\v\f\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\e\u001C\u001D\u001E\u001F !\"\#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007F.txt")
  - allowed any number of times, invoked never: File.directory?("/path/to/local/\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\v\f\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\e\u001C\u001D\u001E\u001F !\"\#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007F.txt")
  - allowed any number of times, invoked never: File.stat("/path/to/local/\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\v\f\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\e\u001C\u001D\u001E\u001F !\"\#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007F.txt")
==============================================================================================================================================================================
.........
Finished in 0.25847355 seconds.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
34 tests, 64 assertions, 2 failures, 2 errors, 0 pendings, 0 omissions, 0 notifications
94.1176% passed
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
131.54 tests/s, 247.61 assertions/s
rake aborted!
Command failed with status (1)
/home/terceiro/.ruby-standalone/gems/ruby/2.7.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
Tasks: TOP => test
(See full trace by running task with --trace)

I'm still not sure why. I don't understand the issue yet, but by trial and error I came out with the following patch, but I'm pretty sure it's not the correct fix:

diff --git a/test/common.rb b/test/common.rb
index 1216933..de620b5 100644
--- a/test/common.rb
+++ b/test/common.rb
@@ -62,11 +62,11 @@ class Net::SCP::TestCase < Test::Unit::TestCase
     # handles newlines just fine, so we can be reasonably confident that they
     # will work in practice
     def awful_file_name
-      (((0x00..0x7f).to_a - [0x00, 0x0a, 0x2f]).map { |n| n.chr }).join + '.txt'
+      (((0x00..0x7f).to_a - [0x00, 0x0a, 0x2b, 0x2f]).map { |n| n.chr }).join + '.txt'
     end

     def escaped_file_name
-      "\\\001\\\002\\\003\\\004\\\005\\\006\\\a\\\b\\\t\\\v\\\f\\\r\\\016\\\017\\\020\\\021\\\022\\\023\\\024\\\025\\\026\\\027\\\030\\\031\\\032\\\e\\\034\\\035\\\036\\\037\\ \\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+,-.0123456789:\\;\\<\\=\\>\\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\\[\\\\\\]\\^_\\`abcdefghijklmnopqrstuvwxyz\\{\\|\\}\\~\\\177.txt"
+      "\\\001\\\002\\\003\\\004\\\005\\\006\\\a\\\b\\\t\\\v\\\f\\\r\\\016\\\017\\\020\\\021\\\022\\\023\\\024\\\025\\\026\\\027\\\030\\\031\\\032\\\e\\\034\\\035\\\036\\\037\\ \\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*,-.0123456789:\\;\\<\\=\\>\\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\\[\\\\\\]\\^_\\`abcdefghijklmnopqrstuvwxyz\\{\\|\\}\\~\\\177.txt"
     end

     class FileEntry
terceiro commented 4 years ago

i.e. the problem seems to be the "+" (0x2b) - but why?

voxik commented 4 years ago

https://github.com/ruby/ruby/commit/43a16c98df392e726040f0331a3e09d00c53d513

?

voxik commented 4 years ago

IOW if your patch removes +, then it is probably intended change aligned with Ruby upstream.

terceiro commented 4 years ago

aha, thanks for the investigation!