container.rb 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. stdlib = [
  2. 'abbrev',
  3. 'base64',
  4. 'benchmark',
  5. 'bigdecimal',
  6. 'cgi',
  7. 'cmath',
  8. 'coverage',
  9. 'csv',
  10. 'date',
  11. 'dbm',
  12. 'delegate',
  13. 'digest',
  14. 'drb',
  15. 'e2mmap',
  16. 'erb',
  17. 'etc',
  18. 'expect',
  19. 'fcntl',
  20. 'fiddle',
  21. 'fileutils',
  22. 'find',
  23. 'forwardable',
  24. 'gdbm',
  25. 'getoptlong',
  26. 'io/console',
  27. 'io/nonblock',
  28. 'io/wait',
  29. 'ipaddr',
  30. 'irb',
  31. 'json',
  32. 'logger',
  33. 'mathn',
  34. 'matrix',
  35. 'mkmf',
  36. 'monitor',
  37. 'mutex_m',
  38. 'net/ftp',
  39. 'net/http',
  40. 'net/imap',
  41. 'net/pop',
  42. 'net/smtp',
  43. 'net/telnet',
  44. 'nkf',
  45. 'objspace',
  46. 'observer',
  47. 'open-uri',
  48. 'open3',
  49. 'openssl',
  50. 'optparse',
  51. 'ostruct',
  52. 'pathname',
  53. 'pp',
  54. 'prettyprint',
  55. 'prime',
  56. #'profile', # prints all sorts of info to stderr, not easy to test right now
  57. 'profiler',
  58. 'pstore',
  59. 'psych',
  60. 'pty',
  61. 'rake',
  62. 'rdoc',
  63. 'readline',
  64. 'resolv',
  65. 'resolv-replace',
  66. 'ripper',
  67. 'rss',
  68. 'rubygems',
  69. 'scanf',
  70. 'sdbm',
  71. 'securerandom',
  72. 'set',
  73. 'shell',
  74. 'shellwords',
  75. 'singleton',
  76. 'socket',
  77. 'stringio',
  78. 'strscan',
  79. 'sync',
  80. 'syslog',
  81. 'tempfile',
  82. 'thread',
  83. 'thwait',
  84. 'time',
  85. 'timeout',
  86. 'tmpdir',
  87. 'tracer',
  88. 'tsort',
  89. 'un',
  90. 'uri',
  91. 'weakref',
  92. 'webrick',
  93. 'xmlrpc/client',
  94. 'xmlrpc/server',
  95. 'yaml',
  96. 'zlib',
  97. ]
  98. if defined? RUBY_ENGINE && RUBY_ENGINE == 'jruby'
  99. # these libraries don't work or don't exist on JRuby ATM
  100. stdlib.delete('dbm')
  101. stdlib.delete('gdbm')
  102. stdlib.delete('mkmf')
  103. stdlib.delete('objspace')
  104. stdlib.delete('sdbm')
  105. end
  106. result = 'ok'
  107. stdlib.each do |lib|
  108. #puts "Testing #{lib}"
  109. begin
  110. require lib
  111. rescue Exception => e
  112. result = 'failure'
  113. STDERR.puts "\n\nrequire '#{lib}' failed: #{e.message}\n"
  114. STDERR.puts e.backtrace.join("\n")
  115. STDERR.puts "\n"
  116. end
  117. end
  118. exit(1) unless result == 'ok'
  119. puts result