rstyx 0.3.1 → 0.3.2

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.
data/lib/rstyx/version.rb CHANGED
@@ -20,7 +20,7 @@
20
20
  #
21
21
  # RStyx version code
22
22
  #
23
- # $Id: version.rb 235 2007-08-14 11:17:48Z dido $
23
+ # $Id: version.rb 245 2007-09-13 08:23:06Z dido $
24
24
  #
25
25
 
26
26
  module RStyx
@@ -28,7 +28,7 @@ module RStyx
28
28
 
29
29
  MAJOR = 0
30
30
  MINOR = 3
31
- TINY = 1
31
+ TINY = 2
32
32
 
33
33
  # The version of RStyx in use.
34
34
  STRING = [ MAJOR, MINOR, TINY ].join(".")
@@ -18,10 +18,11 @@
18
18
  # Foundation, Inc., 51 Franklin St., Fifth Floor, Boston, MA
19
19
  # 02110-1301 USA.
20
20
  #
21
- # $Id: tc_styxservproto.rb 222 2007-07-09 08:15:44Z dido $
21
+ # $Id: tc_styxservproto.rb 239 2007-08-17 04:56:29Z dido $
22
22
  #
23
23
  require 'test/unit'
24
24
  require 'flexmock'
25
+ require 'flexmock/test_unit'
25
26
  require 'rstyx/server'
26
27
 
27
28
  ##
@@ -92,6 +93,10 @@ module RStyx
92
93
  return(@@mock.iounit)
93
94
  end
94
95
 
96
+ def clunk(fid)
97
+ return(@@mock.clunk(fid))
98
+ end
99
+
95
100
  end
96
101
  end
97
102
  end
@@ -124,35 +129,36 @@ class FakeConnection
124
129
  end
125
130
 
126
131
  def method_missing(meth, *args)
127
- @selfmock.call(meth, *args)
132
+ @selfmock.send(meth, *args)
128
133
  end
129
134
  end
130
135
 
131
136
  class TestStyxServProto < Test::Unit::TestCase
132
137
  def test_tversion
133
- FlexMock.use("sessmock") do |sessmock|
134
- serv = FakeConnection.new(nil, sessmock, nil)
135
- sessmock.should_receive(:reset_session).with(Integer).returns do |m|
136
- assert_equal(1024, m)
137
- end
138
- resp = serv.tversion(RStyx::Message::Tversion.new(:version => "9P2000",
139
- :msize => 1024))
140
- assert_equal(RStyx::Message::Rversion, resp.class)
141
- assert_equal("9P2000", resp.version)
142
- assert_equal(8216, resp.msize)
143
- end
138
+ sessmock1 = flexmock
139
+ selfmock = flexmock(:get_peername => nil)
140
+ serv = FakeConnection.new(selfmock, sessmock1, nil)
141
+ sessmock1.should_receive(:reset_session).with(Integer).returns do |m|
142
+ assert_equal(1024, m)
144
143
 
145
- FlexMock.use("sessmock") do |sessmock|
146
- serv = FakeConnection.new(nil, sessmock, nil)
147
- resp = serv.tversion(RStyx::Message::Tversion.new(:version => "foo",
148
- :msize => 1024))
149
- assert_equal(RStyx::Message::Rerror, resp.class)
150
- assert_equal("Unsupported protocol version foo (must be 9P2000)", resp.ename)
151
144
  end
145
+ resp = serv.tversion(RStyx::Message::Tversion.new(:version => "9P2000",
146
+ :msize => 1024))
147
+ assert_equal(RStyx::Message::Rversion, resp.class)
148
+ assert_equal("9P2000", resp.version)
149
+ assert_equal(8216, resp.msize)
150
+
151
+ sessmock = flexmock
152
+ serv = FakeConnection.new(selfmock, sessmock, nil)
153
+ resp = serv.tversion(RStyx::Message::Tversion.new(:version => "foo",
154
+ :msize => 1024))
155
+ assert_equal(RStyx::Message::Rerror, resp.class)
156
+ assert_equal("Unsupported protocol version foo (must be 9P2000)", resp.ename)
152
157
  end
153
158
 
154
159
  def test_tauth
155
- serv = FakeConnection.new(nil, nil, nil)
160
+ selfmock = flexmock(:get_peername => nil)
161
+ serv = FakeConnection.new(selfmock, nil, nil)
156
162
  resp = serv.tauth(RStyx::Message::Tauth.new(:fid => 1,
157
163
  :afid => 2,
158
164
  :uname => "foo",
@@ -162,10 +168,11 @@ class TestStyxServProto < Test::Unit::TestCase
162
168
  end
163
169
 
164
170
  def test_tattach
171
+ selfmock = flexmock(:get_peername => nil)
165
172
  # Test no version negotiation error
166
173
  FlexMock.use("sessmock") do |sessmock|
167
174
  sessmock.should_receive(:version_negotiated?).returns(false)
168
- serv = FakeConnection.new(nil, sessmock, nil)
175
+ serv = FakeConnection.new(selfmock, sessmock, nil)
169
176
  assert_raises(RStyx::StyxException) do
170
177
  serv.tattach(RStyx::Message::Tattach.new(:fid => 1,
171
178
  :afid => 2,
@@ -178,7 +185,7 @@ class TestStyxServProto < Test::Unit::TestCase
178
185
  FlexMock.use("sessmock") do |sessmock|
179
186
  sessmock.should_receive(:version_negotiated?).returns(true)
180
187
  sessmock.should_receive(:has_fid?).with(1).returns(true)
181
- serv = FakeConnection.new(nil, sessmock, nil)
188
+ serv = FakeConnection.new(selfmock, sessmock, nil)
182
189
  assert_raises(RStyx::StyxException) do
183
190
  serv.tattach(RStyx::Message::Tattach.new(:fid => 1,
184
191
  :afid => 2,
@@ -195,7 +202,7 @@ class TestStyxServProto < Test::Unit::TestCase
195
202
  sessmock.should_receive(:[]=).with(1, rootmock)
196
203
  # Return a phony QID with a distinctive pattern
197
204
  rootmock.should_receive(:qid).returns(RStyx::Message::Qid.new(0x12345678, 0x87654321, 0xfeedfacec0ffeee))
198
- serv = FakeConnection.new(nil, sessmock, rootmock)
205
+ serv = FakeConnection.new(selfmock, sessmock, rootmock)
199
206
  resp = serv.tattach(RStyx::Message::Tattach.new(:fid => 1,
200
207
  :afid => 2,
201
208
  :uname => "foo",
@@ -208,17 +215,19 @@ class TestStyxServProto < Test::Unit::TestCase
208
215
  end
209
216
 
210
217
  def test_tflush
218
+ selfmock = flexmock(:get_peername => nil)
211
219
  FlexMock.use("sessmock") do |sessmock|
212
220
  sessmock.should_receive(:flush_tag).with(100)
213
- serv = FakeConnection.new(nil, sessmock, nil)
221
+ serv = FakeConnection.new(selfmock, sessmock, nil)
214
222
  resp = serv.tflush(RStyx::Message::Tflush.new(:oldtag => 100))
215
223
  assert_equal(RStyx::Message::Rflush, resp.class)
216
224
  end
217
225
  end
218
226
 
219
227
  def test_twalk
228
+ selfmock = flexmock(:get_peername => nil)
220
229
  # Test for wnames > MAXWELEM
221
- serv = FakeConnection.new(nil, nil, nil)
230
+ serv = FakeConnection.new(selfmock, nil, nil)
222
231
  assert_raises(RStyx::StyxException) do
223
232
  serv.twalk(RStyx::Message::Twalk.new(:fid => 1,
224
233
  :newfid => 2,
@@ -235,7 +244,7 @@ class TestStyxServProto < Test::Unit::TestCase
235
244
  FlexMock.use("filemock") do |filemock|
236
245
  sessmock.should_receive(:[]).with(42).returns(filemock)
237
246
  filemock.should_receive(:client).returns(:pwn3d)
238
- serv = FakeConnection.new(nil, sessmock, nil)
247
+ serv = FakeConnection.new(selfmock, sessmock, nil)
239
248
  assert_raises(RStyx::StyxException) do
240
249
  serv.twalk(RStyx::Message::Twalk.new(:fid => 42,
241
250
  :newfid => 43,
@@ -250,7 +259,7 @@ class TestStyxServProto < Test::Unit::TestCase
250
259
  sessmock.should_receive(:[]).with(42).returns(filemock)
251
260
  filemock.should_receive(:client).returns(nil)
252
261
  sessmock.should_receive(:has_fid?).with(43).returns(true)
253
- serv = FakeConnection.new(nil, sessmock, nil)
262
+ serv = FakeConnection.new(selfmock, sessmock, nil)
254
263
  assert_raises(RStyx::StyxException) do
255
264
  serv.twalk(RStyx::Message::Twalk.new(:fid => 42,
256
265
  :newfid => 43,
@@ -267,7 +276,7 @@ class TestStyxServProto < Test::Unit::TestCase
267
276
  sessmock.should_receive(:has_fid?).with(43).returns(false)
268
277
  filemock.should_receive(:directory?).returns(false)
269
278
  filemock.should_receive(:name).returns("foo")
270
- serv = FakeConnection.new(nil, sessmock, nil)
279
+ serv = FakeConnection.new(selfmock, sessmock, nil)
271
280
  assert_raises(RStyx::StyxException) do
272
281
  serv.twalk(RStyx::Message::Twalk.new(:fid => 42,
273
282
  :newfid => 43,
@@ -285,7 +294,7 @@ class TestStyxServProto < Test::Unit::TestCase
285
294
  filemock.should_receive(:directory?).returns(true)
286
295
  filemock.should_receive(:name).returns("foo")
287
296
  sessmock.should_receive(:execute?).returns(false)
288
- serv = FakeConnection.new(nil, sessmock, nil)
297
+ serv = FakeConnection.new(selfmock, sessmock, nil)
289
298
  assert_raises(RStyx::StyxException) do
290
299
  serv.twalk(RStyx::Message::Twalk.new(:fid => 42,
291
300
  :newfid => 43,
@@ -305,7 +314,7 @@ class TestStyxServProto < Test::Unit::TestCase
305
314
  filemock.should_receive(:name).returns("foo")
306
315
  filemock.should_receive(:atime=)
307
316
  filemock.should_receive(:[]).with("1").returns(nil)
308
- serv = FakeConnection.new(nil, sessmock, nil)
317
+ serv = FakeConnection.new(selfmock, sessmock, nil)
309
318
  assert_raises(RStyx::StyxException) do
310
319
  serv.twalk(RStyx::Message::Twalk.new(:fid => 42,
311
320
  :newfid => 43,
@@ -327,7 +336,7 @@ class TestStyxServProto < Test::Unit::TestCase
327
336
  filemock.should_receive(:[]).with("2").returns(nil)
328
337
  filemock.should_receive(:qid).returns(RStyx::Message::Qid.new(0x12345678, 0x87654321, 0xfeedfacec0ffeee))
329
338
  filemock.should_receive(:refresh)
330
- serv = FakeConnection.new(nil, sessmock, nil)
339
+ serv = FakeConnection.new(selfmock, sessmock, nil)
331
340
  resp = serv.twalk(RStyx::Message::Twalk.new(:fid => 42,
332
341
  :newfid => 43,
333
342
  :wnames => ["1", "2"]))
@@ -360,8 +369,8 @@ class TestStyxServProto < Test::Unit::TestCase
360
369
  ]
361
370
  filemock.should_receive(:qid).returns { qids.shift }
362
371
  filemock.should_receive(:refresh)
363
- sessmock.should_receive(:[]=).with(42, filemock)
364
- serv = FakeConnection.new(nil, sessmock, nil)
372
+ sessmock.should_receive(:[]=).with(43, filemock)
373
+ serv = FakeConnection.new(selfmock, sessmock, nil)
365
374
  resp = serv.twalk(RStyx::Message::Twalk.new(:fid => 42,
366
375
  :newfid => 43,
367
376
  :wnames => ["1", "2"]))
@@ -383,6 +392,7 @@ class TestStyxServProto < Test::Unit::TestCase
383
392
  end
384
393
 
385
394
  def test_topen
395
+ selfmock = flexmock(:get_peername => nil)
386
396
  FlexMock.use("sessmock") do |sessmock|
387
397
  FlexMock.use("filemock") do |filemock|
388
398
  sessmock.should_receive(:[]).with(42).returns(filemock)
@@ -392,7 +402,7 @@ class TestStyxServProto < Test::Unit::TestCase
392
402
  sessmock.should_receive(:user)
393
403
  filemock.should_receive(:qid).returns(RStyx::Message::Qid.new(0x12345678, 0x87654321, 0xfeedfacec0ffeee))
394
404
  sessmock.should_receive(:iounit).returns(0xdeadbeef)
395
- serv = FakeConnection.new(nil, sessmock, nil)
405
+ serv = FakeConnection.new(selfmock, sessmock, nil)
396
406
  resp = serv.topen(RStyx::Message::Topen.new(:fid => 42,
397
407
  :mode => RStyx::OTRUNC))
398
408
  assert_equal(RStyx::Message::Qid.new(0x12345678, 0x87654321, 0xfeedfacec0ffeee), resp.qid)
@@ -402,13 +412,14 @@ class TestStyxServProto < Test::Unit::TestCase
402
412
  end
403
413
 
404
414
  def test_tcreate
415
+ selfmock = flexmock(:get_peername => nil)
405
416
  # First, test the error condition of trying to create a file
406
417
  # inside a fid representing a file.
407
418
  FlexMock.use("sessmock") do |sessmock|
408
419
  FlexMock.use("filemock") do |filemock|
409
420
  sessmock.should_receive(:[]).with(42).returns(filemock)
410
421
  filemock.should_receive(:directory?).returns(false)
411
- serv = FakeConnection.new(nil, sessmock, nil)
422
+ serv = FakeConnection.new(selfmock, sessmock, nil)
412
423
  assert_raises(RStyx::StyxException) do
413
424
  resp = serv.tcreate(RStyx::Message::Tcreate.new(:fid => 42,
414
425
  :mode => RStyx::OTRUNC))
@@ -423,7 +434,7 @@ class TestStyxServProto < Test::Unit::TestCase
423
434
  sessmock.should_receive(:[]).with(42).returns(filemock)
424
435
  filemock.should_receive(:directory?).returns(true)
425
436
  sessmock.should_receive(:writable?).returns(false)
426
- serv = FakeConnection.new(nil, sessmock, nil)
437
+ serv = FakeConnection.new(selfmock, sessmock, nil)
427
438
  assert_raises(RStyx::StyxException) do
428
439
  resp = serv.tcreate(RStyx::Message::Tcreate.new(:fid => 42,
429
440
  :mode => RStyx::OTRUNC))
@@ -443,7 +454,7 @@ class TestStyxServProto < Test::Unit::TestCase
443
454
  filemock.should_receive(:add_client)
444
455
  filemock.should_receive(:qid).returns(RStyx::Message::Qid.new(0x12345678, 0x87654321, 0xfeedfacec0ffeee))
445
456
  sessmock.should_receive(:iounit).returns(0xdeadbeef)
446
- serv = FakeConnection.new(nil, sessmock, nil)
457
+ serv = FakeConnection.new(selfmock, sessmock, nil)
447
458
  resp = serv.tcreate(RStyx::Message::Tcreate.new(:fid => 42,
448
459
  :name => "foo",
449
460
  :perm => 0644,
@@ -460,12 +471,13 @@ class TestStyxServProto < Test::Unit::TestCase
460
471
  end
461
472
 
462
473
  def test_tread
474
+ selfmock = flexmock(:get_peername => nil)
463
475
  # Test error condition -- file not open for reading
464
476
  FlexMock.use("sessmock") do |sessmock|
465
477
  FlexMock.use("filemock") do |filemock|
466
478
  sessmock.should_receive(:[]).with(42).returns(filemock)
467
479
  filemock.should_receive(:client).returns(nil)
468
- serv = FakeConnection.new(nil, sessmock, nil)
480
+ serv = FakeConnection.new(selfmock, sessmock, nil)
469
481
  assert_raises(RStyx::StyxException) do
470
482
  resp = serv.tread(RStyx::Message::Tread.new(:fid => 42,
471
483
  :offset => 0xfeedfacec0ffeeee,
@@ -481,7 +493,7 @@ class TestStyxServProto < Test::Unit::TestCase
481
493
  filemock.should_receive(:client).returns(filemock)
482
494
  filemock.should_receive(:readable?).returns(true)
483
495
  sessmock.should_receive(:iounit).returns(8216)
484
- serv = FakeConnection.new(nil, sessmock, nil)
496
+ serv = FakeConnection.new(selfmock, sessmock, nil)
485
497
  assert_raises(RStyx::StyxException) do
486
498
  resp = serv.tread(RStyx::Message::Tread.new(:fid => 42,
487
499
  :offset => 0xfeedfacec0ffeeee,
@@ -502,7 +514,7 @@ class TestStyxServProto < Test::Unit::TestCase
502
514
  assert_equal(1000, a3)
503
515
  true
504
516
  end
505
- serv = FakeConnection.new(nil, sessmock, nil)
517
+ serv = FakeConnection.new(selfmock, sessmock, nil)
506
518
  resp = serv.tread(RStyx::Message::Tread.new(:fid => 42,
507
519
  :offset => 0xfeedfacec0ffeeee,
508
520
  :count => 1000))
@@ -513,12 +525,13 @@ class TestStyxServProto < Test::Unit::TestCase
513
525
  end
514
526
 
515
527
  def test_twrite
528
+ selfmock = flexmock(:get_peername => nil)
516
529
  # Test error condition -- file not open for writing
517
530
  FlexMock.use("sessmock") do |sessmock|
518
531
  FlexMock.use("filemock") do |filemock|
519
532
  sessmock.should_receive(:[]).with(42).returns(filemock)
520
533
  filemock.should_receive(:client).returns(nil)
521
- serv = FakeConnection.new(nil, sessmock, nil)
534
+ serv = FakeConnection.new(selfmock, sessmock, nil)
522
535
  assert_raises(RStyx::StyxException) do
523
536
  resp = serv.twrite(RStyx::Message::Twrite.new(:fid => 42,
524
537
  :offset => 0xfeedfacec0ffeeee,
@@ -534,7 +547,7 @@ class TestStyxServProto < Test::Unit::TestCase
534
547
  filemock.should_receive(:client).returns(filemock)
535
548
  filemock.should_receive(:writable?).returns(true)
536
549
  sessmock.should_receive(:iounit).returns(8216)
537
- serv = FakeConnection.new(nil, sessmock, nil)
550
+ serv = FakeConnection.new(selfmock, sessmock, nil)
538
551
  assert_raises(RStyx::StyxException) do
539
552
  resp = serv.twrite(RStyx::Message::Twrite.new(:fid => 42,
540
553
  :offset => 0xfeedfacec0ffeeee,
@@ -559,7 +572,7 @@ class TestStyxServProto < Test::Unit::TestCase
559
572
  filemock.should_receive(:truncate?).returns(false)
560
573
  filemock.should_receive(:appendonly?).returns(false)
561
574
  filemock.should_receive(:length).returns(42)
562
- serv = FakeConnection.new(nil, sessmock, nil)
575
+ serv = FakeConnection.new(selfmock, sessmock, nil)
563
576
  resp = serv.twrite(RStyx::Message::Twrite.new(:fid => 42,
564
577
  :offset => 0xfeedfacec0ffeeee,
565
578
  :data => "0" * 1000))
@@ -584,7 +597,7 @@ class TestStyxServProto < Test::Unit::TestCase
584
597
  filemock.should_receive(:truncate?).returns(false)
585
598
  filemock.should_receive(:appendonly?).returns(true)
586
599
  filemock.should_receive(:length).returns(42)
587
- serv = FakeConnection.new(nil, sessmock, nil)
600
+ serv = FakeConnection.new(selfmock, sessmock, nil)
588
601
  resp = serv.twrite(RStyx::Message::Twrite.new(:fid => 42,
589
602
  :offset => 0xfeedfacec0ffeeee,
590
603
  :data => "0" * 1000))
@@ -593,4 +606,15 @@ class TestStyxServProto < Test::Unit::TestCase
593
606
  end
594
607
  end
595
608
 
609
+ def test_tclunk
610
+ selfmock = flexmock(:get_peername => nil)
611
+ sessmock = flexmock
612
+ sessmock.should_receive(:clunk).with(Integer).returns do |f|
613
+ assert_equal(42, f)
614
+ end
615
+ serv = FakeConnection.new(selfmock, sessmock, nil)
616
+ resp = serv.tclunk(RStyx::Message::Tclunk.new(:fid => 42))
617
+ assert_equal(RStyx::Message::Rclunk, resp.class)
618
+ end
619
+
596
620
  end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: rstyx
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.3.1
7
- date: 2007-08-14 00:00:00 +08:00
6
+ version: 0.3.2
7
+ date: 2007-09-13 00:00:00 +08:00
8
8
  summary: RStyx is a Ruby implementation of the 9P2000/Styx distributed file protocol used on Plan 9 and Inferno.
9
9
  require_paths:
10
10
  - lib
@@ -33,9 +33,12 @@ files:
33
33
  - ChangeLog
34
34
  - Manifest.txt
35
35
  - NEWS
36
- - README
36
+ - README.txt
37
37
  - Rakefile
38
38
  - examples/readstyxfile.rb
39
+ - examples/fileondisk.rb
40
+ - examples/testserver.rb
41
+ - examples/writestyxfile.rb
39
42
  - lib/rstyx/authmodules.rb
40
43
  - lib/rstyx/client.rb
41
44
  - lib/rstyx/common.rb
@@ -55,6 +58,7 @@ rdoc_options:
55
58
  - README.txt
56
59
  extra_rdoc_files:
57
60
  - Manifest.txt
61
+ - README.txt
58
62
  executables: []
59
63
 
60
64
  extensions: []