trema 0.4.6 → 0.4.7

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.
Files changed (291) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.travis.yml +24 -7
  4. data/Gemfile +19 -27
  5. data/Guardfile +6 -0
  6. data/README.md +13 -5
  7. data/Rakefile +418 -415
  8. data/bin/quality +2 -2
  9. data/bin/trema +103 -105
  10. data/bin/trema-config +7 -7
  11. data/build.rb +2 -2
  12. data/cruise.rb +109 -83
  13. data/features/dsl/switch_port_specifier.feature +1 -1
  14. data/features/examples/dumper.feature +9 -41
  15. data/features/examples/hello_trema.feature +1 -1
  16. data/features/examples/learning_switch.feature +7 -7
  17. data/features/examples/list_switches.feature +5 -5
  18. data/features/examples/message.set_config.feature +11 -11
  19. data/features/examples/message.vendor-action.feature +7 -7
  20. data/features/examples/message.vendor-stats-request.feature +1 -1
  21. data/features/examples/multi_learning_switch.feature +7 -7
  22. data/features/examples/openflow_message.echo.feature +15 -15
  23. data/features/examples/openflow_message.features_request.feature +12 -12
  24. data/features/examples/openflow_message.hello.feature +13 -13
  25. data/features/examples/packet_in.feature +8 -8
  26. data/features/examples/patch_panel.feature +1 -1
  27. data/features/examples/repeater_hub.feature +7 -7
  28. data/features/examples/switch_info.feature +16 -16
  29. data/features/examples/switch_monitor.feature +11 -11
  30. data/features/examples/transparent_firewall.feature +73 -0
  31. data/features/handlers/switch_ready.feature +1 -1
  32. data/features/step_definitions/misc_steps.rb +24 -24
  33. data/features/step_definitions/send_packets_steps.rb +2 -2
  34. data/features/step_definitions/stats_steps.rb +6 -6
  35. data/features/support/env.rb +15 -15
  36. data/features/support/hooks.rb +9 -9
  37. data/features/switch_event/add_forward_entry.feature +3 -3
  38. data/features/switch_event/delete_forward_entry.feature +3 -3
  39. data/features/switch_event/dump_forward_entries.feature +2 -2
  40. data/features/switch_event/set_forward_entries.feature +2 -2
  41. data/features/trema_commands/dump_flows.feature +1 -0
  42. data/features/trema_commands/help.feature +1 -0
  43. data/features/trema_commands/help_option.feature +1 -0
  44. data/features/trema_commands/kill.feature +1 -0
  45. data/features/trema_commands/killall.feature +1 -0
  46. data/features/trema_commands/port_down.feature +1 -0
  47. data/features/trema_commands/port_up.feature +1 -0
  48. data/features/trema_commands/reset_stats.feature +1 -0
  49. data/features/trema_commands/run.feature +1 -0
  50. data/features/trema_commands/send_packets.feature +2 -1
  51. data/features/trema_commands/show_stats.feature +1 -0
  52. data/features/trema_commands/up.feature +1 -0
  53. data/features/trema_commands/version.feature +1 -0
  54. data/features/trema_commands/version_option.feature +1 -0
  55. data/rubocop-todo.yml +159 -0
  56. data/ruby/blocker.rb +15 -17
  57. data/ruby/extconf.rb +19 -19
  58. data/ruby/sub-process.rb +29 -29
  59. data/ruby/trema/aggregate-stats-reply.rb +2 -2
  60. data/ruby/trema/app.rb +13 -13
  61. data/ruby/trema/cli.rb +45 -45
  62. data/ruby/trema/command.rb +14 -14
  63. data/ruby/trema/command/dump_flows.rb +5 -5
  64. data/ruby/trema/command/kill.rb +13 -13
  65. data/ruby/trema/command/killall.rb +1 -1
  66. data/ruby/trema/command/netns.rb +3 -3
  67. data/ruby/trema/command/port_down.rb +7 -7
  68. data/ruby/trema/command/port_up.rb +7 -7
  69. data/ruby/trema/command/reset_stats.rb +6 -6
  70. data/ruby/trema/command/ruby.rb +2 -2
  71. data/ruby/trema/command/run.rb +23 -23
  72. data/ruby/trema/command/send_packets.rb +9 -9
  73. data/ruby/trema/command/shell.rb +14 -16
  74. data/ruby/trema/command/show_stats.rb +9 -9
  75. data/ruby/trema/command/up.rb +4 -4
  76. data/ruby/trema/command/version.rb +1 -1
  77. data/ruby/trema/controller.rb +10 -10
  78. data/ruby/trema/custom-switch.rb +4 -4
  79. data/ruby/trema/daemon.rb +21 -21
  80. data/ruby/trema/desc-stats-reply.rb +2 -2
  81. data/ruby/trema/dsl.rb +5 -5
  82. data/ruby/trema/dsl/configuration.rb +7 -7
  83. data/ruby/trema/dsl/context.rb +10 -10
  84. data/ruby/trema/dsl/custom-switch.rb +3 -3
  85. data/ruby/trema/dsl/link.rb +2 -2
  86. data/ruby/trema/dsl/netns.rb +9 -9
  87. data/ruby/trema/dsl/parser.rb +14 -14
  88. data/ruby/trema/dsl/rswitch.rb +3 -3
  89. data/ruby/trema/dsl/run.rb +4 -4
  90. data/ruby/trema/dsl/runner.rb +20 -20
  91. data/ruby/trema/dsl/stanza.rb +5 -5
  92. data/ruby/trema/dsl/switch.rb +14 -14
  93. data/ruby/trema/dsl/syntax.rb +54 -54
  94. data/ruby/trema/dsl/vhost.rb +9 -9
  95. data/ruby/trema/dsl/vswitch.rb +4 -4
  96. data/ruby/trema/enqueue.rb +11 -11
  97. data/ruby/trema/exact-match.rb +1 -1
  98. data/ruby/trema/executables.rb +19 -19
  99. data/ruby/trema/flow-stats-reply.rb +2 -2
  100. data/ruby/trema/flow.rb +8 -8
  101. data/ruby/trema/hardware-switch.rb +2 -2
  102. data/ruby/trema/host.rb +18 -18
  103. data/ruby/trema/link.rb +9 -9
  104. data/ruby/trema/mac.rb +1 -5
  105. data/ruby/trema/match.c +0 -1
  106. data/ruby/trema/monkey-patch/integer.rb +3 -3
  107. data/ruby/trema/monkey-patch/integer/base-conversions.rb +1 -1
  108. data/ruby/trema/monkey-patch/integer/ranges.rb +2 -2
  109. data/ruby/trema/monkey-patch/integer/validators.rb +1 -1
  110. data/ruby/trema/monkey-patch/module.rb +2 -2
  111. data/ruby/trema/monkey-patch/module/class-method.rb +2 -2
  112. data/ruby/trema/monkey-patch/module/deprecation.rb +1 -1
  113. data/ruby/trema/monkey-patch/string.rb +1 -1
  114. data/ruby/trema/monkey-patch/string/inflectors.rb +7 -7
  115. data/ruby/trema/netns.rb +6 -6
  116. data/ruby/trema/network-component.rb +7 -7
  117. data/ruby/trema/ofctl.rb +13 -13
  118. data/ruby/trema/open-vswitch.rb +25 -25
  119. data/ruby/trema/openflow-switch.rb +1 -1
  120. data/ruby/trema/ordered-hash.rb +8 -8
  121. data/ruby/trema/packet-in.c +0 -1
  122. data/ruby/trema/packet-queue.rb +8 -8
  123. data/ruby/trema/packetin-filter.rb +9 -9
  124. data/ruby/trema/path.rb +32 -32
  125. data/ruby/trema/phost.rb +5 -5
  126. data/ruby/trema/port-mod.c +0 -1
  127. data/ruby/trema/port-stats-reply.rb +2 -2
  128. data/ruby/trema/port-status-add.rb +2 -2
  129. data/ruby/trema/port-status-delete.rb +2 -2
  130. data/ruby/trema/port-status-modify.rb +2 -2
  131. data/ruby/trema/port.c +0 -1
  132. data/ruby/trema/process.rb +7 -7
  133. data/ruby/trema/queue-stats-reply.rb +2 -2
  134. data/ruby/trema/ruby-switch.rb +6 -6
  135. data/ruby/trema/send-out-port.rb +11 -11
  136. data/ruby/trema/set-eth-addr.rb +5 -5
  137. data/ruby/trema/set-eth-dst-addr.rb +1 -1
  138. data/ruby/trema/set-eth-src-addr.rb +1 -1
  139. data/ruby/trema/set-ip-addr.rb +6 -6
  140. data/ruby/trema/set-ip-dst-addr.rb +1 -1
  141. data/ruby/trema/set-ip-src-addr.rb +1 -1
  142. data/ruby/trema/set-ip-tos.rb +6 -6
  143. data/ruby/trema/set-transport-dst-port.rb +2 -2
  144. data/ruby/trema/set-transport-port.rb +7 -7
  145. data/ruby/trema/set-transport-src-port.rb +3 -3
  146. data/ruby/trema/set-vlan-priority.rb +6 -6
  147. data/ruby/trema/set-vlan-vid.rb +6 -6
  148. data/ruby/trema/shell.rb +10 -10
  149. data/ruby/trema/shell/down.rb +3 -3
  150. data/ruby/trema/shell/killall.rb +1 -1
  151. data/ruby/trema/shell/link.rb +14 -14
  152. data/ruby/trema/shell/reset_stats.rb +6 -6
  153. data/ruby/trema/shell/run.rb +7 -7
  154. data/ruby/trema/shell/send_packets.rb +3 -3
  155. data/ruby/trema/shell/show_stats.rb +7 -7
  156. data/ruby/trema/shell/up.rb +5 -5
  157. data/ruby/trema/shell/vhost.rb +4 -4
  158. data/ruby/trema/shell/vswitch.rb +7 -7
  159. data/ruby/trema/stats-helper.rb +3 -3
  160. data/ruby/trema/stats-reply.c +0 -1
  161. data/ruby/trema/strip-vlan-header.rb +1 -1
  162. data/ruby/trema/switch-daemon.rb +9 -9
  163. data/ruby/trema/switch-manager.rb +9 -9
  164. data/ruby/trema/switch.rb +7 -7
  165. data/ruby/trema/table-stats-reply.rb +2 -2
  166. data/ruby/trema/timers.rb +12 -12
  167. data/ruby/trema/trema.c +0 -1
  168. data/ruby/trema/tremashark.rb +1 -1
  169. data/ruby/trema/util.rb +25 -27
  170. data/ruby/trema/vendor-action.rb +10 -10
  171. data/ruby/trema/vendor-stats-reply.rb +2 -2
  172. data/ruby/trema/version.rb +1 -1
  173. data/spec/spec_helper.rb +50 -52
  174. data/spec/support/action.rb +9 -12
  175. data/spec/support/mandatory-option.rb +15 -18
  176. data/spec/support/matchers/constant.rb +7 -7
  177. data/spec/support/openflow-message.rb +76 -79
  178. data/spec/support/port-status.rb +7 -10
  179. data/spec/trema/app_spec.rb +27 -27
  180. data/spec/trema/barrier-reply_spec.rb +10 -10
  181. data/spec/trema/barrier-request_spec.rb +35 -35
  182. data/spec/trema/cli_spec.rb +63 -63
  183. data/spec/trema/controller_spec.rb +3 -3
  184. data/spec/trema/default-logger_spec.rb +4 -4
  185. data/spec/trema/dsl/configuration_spec.rb +47 -47
  186. data/spec/trema/dsl/link_spec.rb +11 -11
  187. data/spec/trema/dsl/run_spec.rb +19 -19
  188. data/spec/trema/dsl/runner_spec.rb +91 -91
  189. data/spec/trema/dsl/switch_spec.rb +16 -16
  190. data/spec/trema/dsl/syntax_spec.rb +22 -22
  191. data/spec/trema/dsl/vhost_spec.rb +37 -37
  192. data/spec/trema/dsl/vswitch_spec.rb +21 -21
  193. data/spec/trema/echo-reply_spec.rb +29 -29
  194. data/spec/trema/echo-request_spec.rb +54 -54
  195. data/spec/trema/enqueue_spec.rb +25 -25
  196. data/spec/trema/error_spec.rb +30 -30
  197. data/spec/trema/executables_spec.rb +20 -20
  198. data/spec/trema/features-reply_spec.rb +41 -41
  199. data/spec/trema/features-request_spec.rb +35 -35
  200. data/spec/trema/flow-mod_spec.rb +32 -32
  201. data/spec/trema/flow-removed_spec.rb +62 -62
  202. data/spec/trema/get-config-reply_spec.rb +14 -12
  203. data/spec/trema/get-config-request_spec.rb +35 -35
  204. data/spec/trema/hardware-switch_spec.rb +12 -12
  205. data/spec/trema/hello_spec.rb +17 -17
  206. data/spec/trema/host_spec.rb +71 -71
  207. data/spec/trema/link_spec.rb +13 -13
  208. data/spec/trema/list-switches-reply_spec.rb +10 -10
  209. data/spec/trema/match_spec.rb +41 -41
  210. data/spec/trema/open-vswitch_spec.rb +45 -45
  211. data/spec/trema/openflow-error_spec.rb +67 -65
  212. data/spec/trema/packet-in_spec.rb +450 -446
  213. data/spec/trema/packet-out_spec.rb +42 -42
  214. data/spec/trema/packetin-filter_spec.rb +5 -5
  215. data/spec/trema/port-mod_spec.rb +32 -32
  216. data/spec/trema/port-status-add_spec.rb +3 -3
  217. data/spec/trema/port-status-delete_spec.rb +3 -3
  218. data/spec/trema/port-status-modify_spec.rb +16 -16
  219. data/spec/trema/port-status_spec.rb +2 -2
  220. data/spec/trema/port_spec.rb +21 -21
  221. data/spec/trema/process_spec.rb +22 -22
  222. data/spec/trema/queue-get-config-reply_spec.rb +21 -20
  223. data/spec/trema/queue-get-config-request_spec.rb +24 -24
  224. data/spec/trema/send-out-port_spec.rb +42 -42
  225. data/spec/trema/set-config_spec.rb +31 -31
  226. data/spec/trema/set-eth-addr_spec.rb +21 -21
  227. data/spec/trema/set-ip-addr_spec.rb +29 -29
  228. data/spec/trema/set-ip-tos_spec.rb +26 -26
  229. data/spec/trema/set-transport-dst-port_spec.rb +22 -22
  230. data/spec/trema/set-transport-src-port_spec.rb +22 -22
  231. data/spec/trema/set-vlan-priority_spec.rb +23 -23
  232. data/spec/trema/set-vlan-vid_spec.rb +23 -23
  233. data/spec/trema/shell/vhost_spec.rb +21 -21
  234. data/spec/trema/shell/vswitch_spec.rb +30 -30
  235. data/spec/trema/stats-reply_spec.rb +183 -173
  236. data/spec/trema/stats-request_spec.rb +66 -66
  237. data/spec/trema/strip-vlan-header_spec.rb +11 -11
  238. data/spec/trema/switch-daemon_spec.rb +34 -34
  239. data/spec/trema/switch-disconnected_spec.rb +17 -17
  240. data/spec/trema/switch-manager_spec.rb +6 -6
  241. data/spec/trema/tremashark_spec.rb +4 -4
  242. data/spec/trema/util_spec.rb +35 -35
  243. data/spec/trema/vendor-action_spec.rb +26 -26
  244. data/spec/trema/vendor_spec.rb +27 -27
  245. data/spec/trema_spec.rb +2 -2
  246. data/src/examples/cbench_switch/cbench-switch.rb +3 -3
  247. data/src/examples/dumper/dumper.rb +31 -31
  248. data/src/examples/hello_trema/hello-trema.rb +2 -2
  249. data/src/examples/learning_switch/fdb.rb +14 -14
  250. data/src/examples/learning_switch/learning-switch.rb +12 -10
  251. data/src/examples/learning_switch/learning_switch.c +22 -39
  252. data/src/examples/list_switches/list-switches.rb +3 -3
  253. data/src/examples/match_compare/match-compare.rb +20 -20
  254. data/src/examples/multi_learning_switch/multi-learning-switch.rb +12 -12
  255. data/src/examples/openflow_message/echo.rb +4 -4
  256. data/src/examples/openflow_message/example.rb +7 -7
  257. data/src/examples/openflow_message/features-request.rb +31 -31
  258. data/src/examples/openflow_message/hello.rb +2 -2
  259. data/src/examples/openflow_message/set-config.rb +4 -4
  260. data/src/examples/openflow_message/vendor-action.rb +3 -3
  261. data/src/examples/openflow_message/vendor-stats-request.rb +9 -9
  262. data/src/examples/packet_in/packet-in.rb +2 -2
  263. data/src/examples/patch_panel/patch-panel.rb +9 -9
  264. data/src/examples/repeater_hub/repeater-hub.rb +4 -4
  265. data/src/examples/repeater_hub/repeater-hub_spec.rb +65 -65
  266. data/src/examples/simple_router/arp-table.rb +7 -7
  267. data/src/examples/simple_router/interface.rb +10 -10
  268. data/src/examples/simple_router/routing-table.rb +4 -4
  269. data/src/examples/simple_router/simple-router.rb +3 -3
  270. data/src/examples/switch_info/switch-info.rb +9 -9
  271. data/src/examples/switch_monitor/switch-monitor.rb +4 -4
  272. data/src/examples/traffic_monitor/counter.rb +6 -6
  273. data/src/examples/traffic_monitor/fdb.rb +4 -4
  274. data/src/examples/traffic_monitor/traffic-monitor.rb +12 -12
  275. data/src/examples/transparent_firewall/README.md +61 -0
  276. data/src/examples/transparent_firewall/aggregated-delegated-afrinic.txt +713 -0
  277. data/src/examples/transparent_firewall/aggregated-delegated-apnic.txt +3440 -0
  278. data/src/examples/transparent_firewall/aggregated-delegated-arin.txt +11342 -0
  279. data/src/examples/transparent_firewall/aggregated-delegated-lacnic.txt +1937 -0
  280. data/src/examples/transparent_firewall/aggregated-delegated-ripencc.txt +7329 -0
  281. data/src/examples/transparent_firewall/block-rfc1918.rb +86 -0
  282. data/src/examples/transparent_firewall/pass-delegated.rb +178 -0
  283. data/src/examples/transparent_firewall/regen_aggregated.sh +53 -0
  284. data/src/examples/transparent_firewall/stats-to-cidrs.rb +59 -0
  285. data/src/lib/messenger.c +14 -5
  286. data/src/lib/openflow_message.c +0 -5
  287. data/tasks/rubocop.rake +22 -0
  288. data/trema +1 -1
  289. data/trema-config +1 -1
  290. data/trema.gemspec +22 -22
  291. metadata +30 -16
@@ -16,44 +16,45 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
- describe QueueGetConfigReply, ".new( VALID OPTIONS )" do
23
+ describe QueueGetConfigReply, '.new( VALID OPTIONS )' do
24
24
  subject do
25
25
  for i in 1..2 do
26
- pq = PacketQueue.new( :queue_id => i, :len => i * 64 )
27
- mr = MinRateQueue.new( i, i * 64, 1024 * i, pq)
26
+ pq = PacketQueue.new(:queue_id => i, :len => i * 64)
27
+ mr = MinRateQueue.new(i, i * 64, 1024 * i, pq)
28
28
  end
29
- QueueGetConfigReply.new( :datapath_id => 0xabc,
29
+ QueueGetConfigReply.new(
30
+ :datapath_id => 0xabc,
30
31
  :transaction_id => 123,
31
32
  :port => 1,
32
33
  :queues => Trema::PacketQueues.queues
33
34
  )
34
35
  end
35
- its( "queues.length" ) { should == 2 }
36
- its( "queues.first" ) { should be_an_instance_of PacketQueue }
37
- its( :datapath_id ) { should == 0xabc }
38
- its( :transaction_id ) { should == 123 }
36
+ its('queues.length') { should == 2 }
37
+ its('queues.first') { should be_an_instance_of PacketQueue }
38
+ its(:datapath_id) { should == 0xabc }
39
+ its(:transaction_id) { should == 123 }
39
40
  end
40
41
 
41
42
 
42
- describe PacketQueue, ".new( VALID OPTIONS )" do
43
- subject { PacketQueue.new( :queue_id => 123, :len => 64 ) }
44
- its( :queue_id ) { should == 123 }
45
- its( :len ) { should == 64 }
43
+ describe PacketQueue, '.new( VALID OPTIONS )' do
44
+ subject { PacketQueue.new(:queue_id => 123, :len => 64) }
45
+ its(:queue_id) { should == 123 }
46
+ its(:len) { should == 64 }
46
47
  end
47
48
 
48
49
 
49
- describe MinRateQueue, ".new( VALID OPTIONS )" do
50
+ describe MinRateQueue, '.new( VALID OPTIONS )' do
50
51
  subject do
51
- pq = PacketQueue.new( :queue_id => 123, :len => 64 )
52
- MinRateQueue.new( 1, 64, 1024, pq )
52
+ pq = PacketQueue.new(:queue_id => 123, :len => 64)
53
+ MinRateQueue.new(1, 64, 1024, pq)
53
54
  end
54
- its( :property ) { should == 1 }
55
- its( :len ) { should == 64 }
56
- its( :rate ) { should == 1024 }
55
+ its(:property) { should == 1 }
56
+ its(:len) { should == 64 }
57
+ its(:rate) { should == 1024 }
57
58
  end
58
59
 
59
60
 
@@ -16,46 +16,46 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
- describe QueueGetConfigRequest, ".new( OPTIONAL OPTION MISSING )" do
24
- its( :port ) { should == 1 }
25
- it_should_behave_like "any Openflow message with default transaction ID"
23
+ describe QueueGetConfigRequest, '.new( OPTIONAL OPTION MISSING )' do
24
+ its(:port) { should == 1 }
25
+ it_should_behave_like 'any Openflow message with default transaction ID'
26
26
  end
27
27
 
28
28
 
29
- describe QueueGetConfigRequest, ".new( VALID OPTIONS )" do
30
- subject { QueueGetConfigRequest.new( :transaction_id => transaction_id, :port => port ) }
31
- let( :transaction_id ) { 123 }
32
- let( :port ) { 2 }
33
- it_should_behave_like "any OpenFlow message with transaction_id option"
34
- it_should_behave_like "any OpenFlow message with port option"
29
+ describe QueueGetConfigRequest, '.new( VALID OPTIONS )' do
30
+ subject { QueueGetConfigRequest.new(:transaction_id => transaction_id, :port => port) }
31
+ let(:transaction_id) { 123 }
32
+ let(:port) { 2 }
33
+ it_should_behave_like 'any OpenFlow message with transaction_id option'
34
+ it_should_behave_like 'any OpenFlow message with port option'
35
35
 
36
36
 
37
- context "when #queue_get_config_request is sent" do
38
- it "should #queue_get_config_reply" do
37
+ context 'when #queue_get_config_request is sent' do
38
+ it 'should #queue_get_config_reply' do
39
39
  pending "#queue_get_config_reply is not implemented in #{Trema.vendor_openvswitch}"
40
40
  class QueueGetConfigController < Controller; end
41
- network {
41
+ network do
42
42
  vswitch { datapath_id 0xabc }
43
- }.run( QueueGetConfigController ) {
44
- controller( "QueueGetConfigController" ).should_receive( :queue_get_config_reply )
45
- queue_get_config_request = QueueGetConfigRequest.new( :transaction_id => 123, :port => 1 )
46
- controller( "QueueGetConfigController" ).send_message( 0xabc, queue_get_config_request )
43
+ end.run(QueueGetConfigController) do
44
+ controller('QueueGetConfigController').should_receive(:queue_get_config_reply)
45
+ queue_get_config_request = QueueGetConfigRequest.new(:transaction_id => 123, :port => 1)
46
+ controller('QueueGetConfigController').send_message(0xabc, queue_get_config_request)
47
47
  sleep 2 # FIXME: wait to send_message
48
- }
48
+ end
49
49
  end
50
50
  end
51
51
  end
52
52
 
53
53
 
54
- describe QueueGetConfigRequest, ".new( INVALID OPTIONS )" do
55
- it "should raise a TypeError" do
56
- expect {
57
- QueueGetConfigRequest.new "INVALID OPTIONS"
58
- }.to raise_error( TypeError )
54
+ describe QueueGetConfigRequest, '.new( INVALID OPTIONS )' do
55
+ it 'should raise a TypeError' do
56
+ expect do
57
+ QueueGetConfigRequest.new 'INVALID OPTIONS'
58
+ end.to raise_error(TypeError)
59
59
  end
60
60
  end
61
61
 
@@ -16,84 +16,84 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
- describe SendOutPort, :type => "actions" do
24
- describe "#new(port_number)" do
25
- subject( :send_out_port ) { SendOutPort.new( port_number ) }
23
+ describe SendOutPort, :type => 'actions' do
24
+ describe '#new(port_number)' do
25
+ subject(:send_out_port) { SendOutPort.new(port_number) }
26
26
 
27
27
 
28
- context "with port_number (1)" do
29
- let( :port_number ) { 1 }
28
+ context 'with port_number (1)' do
29
+ let(:port_number) { 1 }
30
30
 
31
- its( :port_number ) { should eq( 1 ) }
32
- its( :max_len ) { should eq( 2 ** 16 - 1 ) }
33
- its( :to_s ) { should eq( "Trema::SendOutPort: port_number=1, max_len=65535" ) }
31
+ its(:port_number) { should eq(1) }
32
+ its(:max_len) { should eq(2**16 - 1) }
33
+ its(:to_s) { should eq('Trema::SendOutPort: port_number=1, max_len=65535') }
34
34
  end
35
35
 
36
36
 
37
- context "with port_number (10)" do
38
- let( :port_number ) { 10 }
37
+ context 'with port_number (10)' do
38
+ let(:port_number) { 10 }
39
39
 
40
40
  context "when set as FlowMod's action", :sudo => true do
41
- it "should insert a new flow entry with action (output:10)" do
41
+ it 'should insert a new flow entry with action (output:10)' do
42
42
  class TestController < Controller; end
43
- network {
43
+ network do
44
44
  vswitch { datapath_id 0xabc }
45
- }.run( TestController ) {
46
- controller( "TestController" ).send_flow_mod_add( 0xabc, :actions => send_out_port )
45
+ end.run(TestController) do
46
+ controller('TestController').send_flow_mod_add(0xabc, :actions => send_out_port)
47
47
  sleep 2
48
- expect( vswitch( "0xabc" ) ).to have( 1 ).flows
49
- expect( vswitch( "0xabc" ).flows[ 0 ].actions ).to eq( "output:10" )
50
- pending( "Test actions as an object using Trema::Switch" ) do
51
- expect( vswitch( "0xabc" ) ).to have( 1 ).flows
52
- expect( vswitch( "0xabc" ).flows[ 0 ] ).to have( 1 ).actions
53
- expect( vswitch( "0xabc" ).flows[ 0 ].actions[ 0 ] ).to be_a( SendOutPort )
54
- expect( vswitch( "0xabc" ).flows[ 0 ].actions[ 0 ].port_number ).to eq( 10 )
48
+ expect(vswitch('0xabc')).to have(1).flows
49
+ expect(vswitch('0xabc').flows[ 0].actions).to eq('output:10')
50
+ pending('Test actions as an object using Trema::Switch') do
51
+ expect(vswitch('0xabc')).to have(1).flows
52
+ expect(vswitch('0xabc').flows[ 0]).to have(1).actions
53
+ expect(vswitch('0xabc').flows[ 0].actions[ 0]).to be_a(SendOutPort)
54
+ expect(vswitch('0xabc').flows[ 0].actions[ 0].port_number).to eq(10)
55
55
  end
56
- }
56
+ end
57
57
  end
58
58
  end
59
59
  end
60
60
 
61
61
 
62
- it_validates "option is within range", :port_number, 0..( 2 ** 16 - 1 )
62
+ it_validates 'option is within range', :port_number, 0..( 2**16 - 1)
63
63
  end
64
64
 
65
65
 
66
- describe "#new(:port_number => value)" do
67
- subject { SendOutPort.new( :port_number => port_number ) }
66
+ describe '#new(:port_number => value)' do
67
+ subject { SendOutPort.new(:port_number => port_number) }
68
68
 
69
69
 
70
- context "with option (:port_number => 1)" do
71
- let( :port_number ) { 1 }
70
+ context 'with option (:port_number => 1)' do
71
+ let(:port_number) { 1 }
72
72
 
73
- its( :port_number ) { should eq( 1 ) }
74
- its( :max_len ) { should eq( 2 ** 16 - 1 ) }
75
- its( :to_s ) { should eq( "Trema::SendOutPort: port_number=1, max_len=65535" ) }
73
+ its(:port_number) { should eq(1) }
74
+ its(:max_len) { should eq(2**16 - 1) }
75
+ its(:to_s) { should eq('Trema::SendOutPort: port_number=1, max_len=65535') }
76
76
  end
77
77
  end
78
78
 
79
79
 
80
- describe "#new(:port_number => value1, :max_len => value2)" do
81
- subject { SendOutPort.new( options ) }
80
+ describe '#new(:port_number => value1, :max_len => value2)' do
81
+ subject { SendOutPort.new(options) }
82
82
 
83
83
 
84
- context "with options (:port_number => 1, :max_len => 256)" do
85
- let( :options ) { { :port_number => 1, :max_len => 256 } }
84
+ context 'with options (:port_number => 1, :max_len => 256)' do
85
+ let(:options) { { :port_number => 1, :max_len => 256 } }
86
86
 
87
- its( :port_number ) { should eq( 1 ) }
88
- its( :max_len ) { should eq( 256 ) }
89
- its( :to_s ) { should eq( "Trema::SendOutPort: port_number=1, max_len=256" ) }
87
+ its(:port_number) { should eq(1) }
88
+ its(:max_len) { should eq(256) }
89
+ its(:to_s) { should eq('Trema::SendOutPort: port_number=1, max_len=256') }
90
90
  end
91
91
 
92
92
 
93
- context "with options (:port_number => 1, :max_len => max_len)" do
94
- let( :options ) { { :port_number => 1, :max_len => max_len } }
93
+ context 'with options (:port_number => 1, :max_len => max_len)' do
94
+ let(:options) { { :port_number => 1, :max_len => max_len } }
95
95
 
96
- it_validates "option is within range", :max_len, 0..( 2 ** 16 - 1 )
96
+ it_validates 'option is within range', :max_len, 0..( 2**16 - 1)
97
97
  end
98
98
  end
99
99
  end
@@ -16,56 +16,56 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
- describe SetConfig, "new( OPTIONAL OPTION MISSING )" do
24
- its( :flags ) { should == 0 }
25
- its( :miss_send_len ) { should == 128 }
26
- it_should_behave_like "any Openflow message with default transaction ID"
23
+ describe SetConfig, 'new( OPTIONAL OPTION MISSING )' do
24
+ its(:flags) { should == 0 }
25
+ its(:miss_send_len) { should == 128 }
26
+ it_should_behave_like 'any Openflow message with default transaction ID'
27
27
  end
28
28
 
29
29
 
30
- describe SetConfig, ".new( VALID OPTIONS )" do
31
- subject { SetConfig.new( :flags => 1, :miss_send_len => 256, :transaction_id => transaction_id ) }
32
- let( :transaction_id ) { 123 }
33
- its( :flags ) { should == 1 }
34
- its( :miss_send_len ) { should == 256 }
35
- it_should_behave_like "any OpenFlow message with transaction_id option"
30
+ describe SetConfig, '.new( VALID OPTIONS )' do
31
+ subject { SetConfig.new(:flags => 1, :miss_send_len => 256, :transaction_id => transaction_id) }
32
+ let(:transaction_id) { 123 }
33
+ its(:flags) { should == 1 }
34
+ its(:miss_send_len) { should == 256 }
35
+ it_should_behave_like 'any OpenFlow message with transaction_id option'
36
36
 
37
37
 
38
- context "when #set_config is sent" do
39
- it "should not #set_config_reply" do
38
+ context 'when #set_config is sent' do
39
+ it 'should not #set_config_reply' do
40
40
  class SetConfigController < Controller; end
41
- network {
41
+ network do
42
42
  vswitch { datapath_id 0xabc }
43
- }.run( SetConfigController ) {
44
- set_config = SetConfig.new( :flags => 0, :miss_send_len => 128, :transaction_id => 123 )
45
- controller( "SetConfigController" ).should_not_receive( :set_config_reply )
46
- controller( "SetConfigController" ).send_message( 0xabc, set_config )
43
+ end.run(SetConfigController) do
44
+ set_config = SetConfig.new(:flags => 0, :miss_send_len => 128, :transaction_id => 123)
45
+ controller('SetConfigController').should_not_receive(:set_config_reply)
46
+ controller('SetConfigController').send_message(0xabc, set_config)
47
47
  sleep 2 # FIXME: wait to send_message
48
- }
48
+ end
49
49
  end
50
50
  end
51
51
 
52
52
 
53
- context "when #set_config is sent with flags, miss_send_len set to 0" do
54
- it "should #get_config_reply with flags, miss_send_len set to 0" do
53
+ context 'when #set_config is sent with flags, miss_send_len set to 0' do
54
+ it 'should #get_config_reply with flags, miss_send_len set to 0' do
55
55
  class SetConfigController < Controller; end
56
- network {
56
+ network do
57
57
  vswitch { datapath_id 0xabc }
58
- }.run( SetConfigController ) {
59
- controller( "SetConfigController" ).should_receive( :get_config_reply ) do | dpid, arg |
60
- expect( arg.flags ).to eq( 0 )
61
- expect( arg.miss_send_len ).to eq( 0 )
58
+ end.run(SetConfigController) do
59
+ controller('SetConfigController').should_receive(:get_config_reply) do | dpid, arg |
60
+ expect(arg.flags).to eq(0)
61
+ expect(arg.miss_send_len).to eq(0)
62
62
  end
63
- set_config = SetConfig.new( :flags => 0, :miss_send_len => 0, :transaction_id => 123 )
64
- controller( "SetConfigController" ).send_message( 0xabc, set_config )
63
+ set_config = SetConfig.new(:flags => 0, :miss_send_len => 0, :transaction_id => 123)
64
+ controller('SetConfigController').send_message(0xabc, set_config)
65
65
  sleep 2 # FIXME: wait to send_message
66
- controller( "SetConfigController" ).send_message( 0xabc, GetConfigRequest.new )
66
+ controller('SetConfigController').send_message(0xabc, GetConfigRequest.new)
67
67
  sleep 2 # FIXME: wait to send_message
68
- }
68
+ end
69
69
  end
70
70
  end
71
71
  end
@@ -16,38 +16,38 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
- [ SetEthSrcAddr, SetEthDstAddr ].each do | klass |
24
- describe klass, ".new", :type => "actions" do
25
- subject { klass.new( mac_address ) }
23
+ [SetEthSrcAddr, SetEthDstAddr].each do | klass |
24
+ describe klass, '.new', :type => 'actions' do
25
+ subject { klass.new(mac_address) }
26
26
 
27
27
 
28
- context %{with "11:22:33:44:55:66"} do
29
- let( :mac_address ) { "11:22:33:44:55:66" }
28
+ context 'with "11:22:33:44:55:66"' do
29
+ let(:mac_address) { '11:22:33:44:55:66' }
30
30
 
31
- its( :mac_address ) { should eq "11:22:33:44:55:66" }
32
- its( :to_s ) { should eq "#{ klass.to_s }: mac_address=11:22:33:44:55:66" }
31
+ its(:mac_address) { should eq '11:22:33:44:55:66' }
32
+ its(:to_s) { should eq "#{ klass }: mac_address=11:22:33:44:55:66" }
33
33
 
34
34
  context "when set as FlowMod's action", :sudo => true do
35
- it "should insert a new flow with action (mod_dl_{src,dst}:11:22:33:44:55:66)" do
35
+ it 'should insert a new flow with action (mod_dl_{src,dst}:11:22:33:44:55:66)' do
36
36
  class TestController < Controller; end
37
- network {
37
+ network do
38
38
  vswitch { datapath_id 0xabc }
39
- }.run( TestController ) {
40
- controller( "TestController" ).send_flow_mod_add( 0xabc, :actions => subject )
39
+ end.run(TestController) do
40
+ controller('TestController').send_flow_mod_add(0xabc, :actions => subject)
41
41
  sleep 2
42
- expect( vswitch( "0xabc" ) ).to have( 1 ).flows
43
- expect( vswitch( "0xabc" ).flows[ 0 ].actions ).to match( /mod_dl_(src|dst):11:22:33:44:55:66/ )
44
- pending( "Test actions as an object using Trema::Switch" ) do
45
- expect( vswitch( "0xabc" ) ).to have( 1 ).flows
46
- expect( vswitch( "0xabc" ).flows[ 0 ] ).to have( 1 ).actions
47
- expect( vswitch( "0xabc" ).flows[ 0 ].actions[ 0 ] ).to be_a( klass )
48
- expect( vswitch( "0xabc" ).flows[ 0 ].actions[ 0 ].mac_address.to_s ).to eq( "11:22:33:44:55:66" )
42
+ expect(vswitch('0xabc')).to have(1).flows
43
+ expect(vswitch('0xabc').flows[ 0].actions).to match(/mod_dl_(src|dst):11:22:33:44:55:66/)
44
+ pending('Test actions as an object using Trema::Switch') do
45
+ expect(vswitch('0xabc')).to have(1).flows
46
+ expect(vswitch('0xabc').flows[ 0]).to have(1).actions
47
+ expect(vswitch('0xabc').flows[ 0].actions[ 0]).to be_a(klass)
48
+ expect(vswitch('0xabc').flows[ 0].actions[ 0].mac_address.to_s).to eq('11:22:33:44:55:66')
49
49
  end
50
- }
50
+ end
51
51
  end
52
52
  end
53
53
  end
@@ -16,59 +16,59 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "spec_helper" )
20
- require "trema"
19
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
20
+ require 'trema'
21
21
 
22
22
 
23
- [ SetIpSrcAddr, SetIpDstAddr ].each do | klass |
24
- describe klass, "#new(ip_address)", :type => "actions" do
25
- subject { klass.new( ip_address ) }
23
+ [SetIpSrcAddr, SetIpDstAddr].each do | klass |
24
+ describe klass, '#new(ip_address)', :type => 'actions' do
25
+ subject { klass.new(ip_address) }
26
26
 
27
27
 
28
- context %{with ip_address ("192.168.1.1")} do
29
- let( :ip_address ) { "192.168.1.1" }
28
+ context 'with ip_address (192.168.1.1)' do
29
+ let(:ip_address) { '192.168.1.1' }
30
30
 
31
- its( "ip_address.to_s" ) { should == "192.168.1.1" }
32
- its( :to_s ) { should eq( "#{ klass.to_s }: ip_address=192.168.1.1" ) }
31
+ its('ip_address.to_s') { should == '192.168.1.1' }
32
+ its(:to_s) { should eq("#{ klass }: ip_address=192.168.1.1") }
33
33
  end
34
34
 
35
35
 
36
- context %{with ip_address ("192.168.1.10")} do
37
- let( :ip_address ) { "192.168.1.10" }
36
+ context 'with ip_address (192.168.1.10)' do
37
+ let(:ip_address) { '192.168.1.10' }
38
38
 
39
39
  context "when set as FlowMod's action", :sudo => true do
40
- it "should insert a new flow entry with action (mod_nw_{src,dst}:192.168.1.10)" do
40
+ it 'should insert a new flow entry with action (mod_nw_{src,dst}:192.168.1.10)' do
41
41
  class TestController < Controller; end
42
- network {
42
+ network do
43
43
  vswitch { datapath_id 0xabc }
44
- }.run( TestController ) {
45
- controller( "TestController" ).send_flow_mod_add( 0xabc, :actions => subject )
44
+ end.run(TestController) do
45
+ controller('TestController').send_flow_mod_add(0xabc, :actions => subject)
46
46
  sleep 2
47
- expect( vswitch( "0xabc" ) ).to have( 1 ).flows
48
- expect( vswitch( "0xabc" ).flows[ 0 ].actions ).to match( /mod_nw_(src|dst):192.168.1.10/ )
49
- pending( "Test actions as an object using Trema::Switch" ) do
50
- expect( vswitch( "0xabc" ) ).to have( 1 ).flows
51
- expect( vswitch( "0xabc" ).flows[ 0 ] ).to have( 1 ).actions
52
- expect( vswitch( "0xabc" ).flows[ 0 ].actions[ 0 ] ).to be_a( klass )
53
- expect( vswitch( "0xabc" ).flows[ 0 ].actions[ 0 ].ip_address.to_s ).to eq( "192.168.1.10" )
47
+ expect(vswitch('0xabc')).to have(1).flows
48
+ expect(vswitch('0xabc').flows[ 0].actions).to match(/mod_nw_(src|dst):192.168.1.10/)
49
+ pending('Test actions as an object using Trema::Switch') do
50
+ expect(vswitch('0xabc')).to have(1).flows
51
+ expect(vswitch('0xabc').flows[ 0]).to have(1).actions
52
+ expect(vswitch('0xabc').flows[ 0].actions[ 0]).to be_a(klass)
53
+ expect(vswitch('0xabc').flows[ 0].actions[ 0].ip_address.to_s).to eq('192.168.1.10')
54
54
  end
55
- }
55
+ end
56
56
  end
57
57
  end
58
58
  end
59
59
 
60
60
 
61
- context %{with invalid ip_address ("1000.1000.1000.1000")} do
62
- let( :ip_address ) { "1000.1000.1000.1000" }
61
+ context 'with invalid ip_address (1000.1000.1000.1000)' do
62
+ let(:ip_address) { '1000.1000.1000.1000' }
63
63
 
64
- it { expect { subject }.to raise_error( ArgumentError ) }
64
+ it { expect { subject }.to raise_error(ArgumentError) }
65
65
  end
66
66
 
67
67
 
68
- context "with invalid ip_address ([1, 2, 3])" do
69
- let( :ip_address ) { [ 1, 2, 3 ] }
68
+ context 'with invalid ip_address ([1, 2, 3])' do
69
+ let(:ip_address) { [1, 2, 3] }
70
70
 
71
- it { expect { subject }.to raise_error( TypeError ) }
71
+ it { expect { subject }.to raise_error(TypeError) }
72
72
  end
73
73
  end
74
74
  end