Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit was manufactured by cvs2svn to create branch 'ruby_1_8'.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@9786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- Loading branch information
(no author)
committed
Jan 1, 2006
1 parent
0190877
commit f86a7fa
Showing
2 changed files
with
75 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,33 @@ | |||
// rb_ia64_flushrs and rb_ia64_bsp is written in IA64 assembly language | |||
// because Intel Compiler for IA64 doesn't support inline assembly. | |||
// | |||
// This file is based on following C program compiled by gcc. | |||
// | |||
// void rb_ia64_flushrs(void) { __builtin_ia64_flushrs(); } | |||
// void *rb_ia64_bsp(void) { return __builtin_ia64_bsp(); } | |||
// | |||
.file "ia64.c" | |||
.text | |||
.align 16 | |||
.global rb_ia64_flushrs# | |||
.proc rb_ia64_flushrs# | |||
rb_ia64_flushrs: | |||
.prologue | |||
.body | |||
flushrs | |||
;; | |||
nop.i 0 | |||
br.ret.sptk.many b0 | |||
.endp rb_ia64_flushrs# | |||
.align 16 | |||
.global rb_ia64_bsp# | |||
.proc rb_ia64_bsp# | |||
rb_ia64_bsp: | |||
.prologue | |||
.body | |||
nop.m 0 | |||
;; | |||
mov r8 = ar.bsp | |||
br.ret.sptk.many b0 | |||
.endp rb_ia64_bsp# | |||
.ident "GCC: (GNU) 3.3.5 (Debian 1:3.3.5-13)" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,42 @@ | |||
require 'test/unit' | |||
|
|||
require 'tmpdir' | |||
require 'fileutils' | |||
|
|||
class TestDir < Test::Unit::TestCase | |||
|
|||
ROOT = File.join(Dir.tmpdir, "__test_dir__#{$$}") | |||
|
|||
def setup | |||
Dir.mkdir(ROOT) | |||
for i in ?a..?z | |||
if i % 2 == 0 | |||
FileUtils.touch(File.join(ROOT, i.chr)) | |||
else | |||
FileUtils.mkdir(File.join(ROOT, i.chr)) | |||
end | |||
end | |||
end | |||
|
|||
def teardown | |||
FileUtils.rm_rf ROOT if File.directory?(ROOT) | |||
end | |||
|
|||
def test_seek | |||
dir = Dir.open(ROOT) | |||
begin | |||
cache = [] | |||
loop do | |||
pos = dir.tell | |||
break unless name = dir.read | |||
cache << [pos, name] | |||
end | |||
for x in cache.sort_by {|x| x[0] % 3 } # shuffle | |||
dir.seek(x[0]) | |||
assert_equal(x[1], dir.read) | |||
end | |||
ensure | |||
dir.close | |||
end | |||
end | |||
end |