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,20 +16,20 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "..", "spec_helper" )
20
- require "trema/dsl/syntax"
21
- require "trema/packetin-filter"
19
+ require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
20
+ require 'trema/dsl/syntax'
21
+ require 'trema/packetin-filter'
22
22
 
23
23
 
24
24
  describe Trema::DSL::Syntax do
25
- before( :each ) do
26
- @context = mock( "context", :port => 6653, :dump_to => nil )
27
- @syntax = Trema::DSL::Syntax.new( @context )
25
+ before(:each) do
26
+ @context = mock('context', :port => 6653, :dump_to => nil)
27
+ @syntax = Trema::DSL::Syntax.new(@context)
28
28
  end
29
29
 
30
30
 
31
31
  it "should recognize 'port' directive" do
32
- @context.should_receive( :port= ).with( 1234 ).once
32
+ @context.should_receive(:port=).with(1234).once
33
33
 
34
34
  @syntax.instance_eval do
35
35
  port 1234
@@ -38,65 +38,65 @@ describe Trema::DSL::Syntax do
38
38
 
39
39
 
40
40
  it "should recognize 'link' directive" do
41
- @context.stub!( :links ).and_return( [ mock( "link" ) ] )
42
- Trema::Link.should_receive( :add ).with( an_instance_of( Trema::Link ) ).once
41
+ @context.stub!(:links).and_return([mock('link')])
42
+ Trema::Link.should_receive(:add).with(an_instance_of(Trema::Link)).once
43
43
 
44
44
  @syntax.instance_eval do
45
- link "PEER0", "PEER1"
45
+ link 'PEER0', 'PEER1'
46
46
  end
47
47
  end
48
48
 
49
49
 
50
50
  it "should recognize 'switch' directive" do
51
- Trema::OpenflowSwitch.should_receive( :add ).with( an_instance_of( HardwareSwitch ) ).once
51
+ Trema::OpenflowSwitch.should_receive(:add).with(an_instance_of(HardwareSwitch)).once
52
52
 
53
53
  @syntax.instance_eval do
54
- switch { dpid "0xabc" }
54
+ switch { dpid '0xabc' }
55
55
  end
56
56
  end
57
57
 
58
58
 
59
59
  it "should recognize 'vswitch' directive" do
60
- Trema::OpenflowSwitch.should_receive( :add ).with( an_instance_of( OpenVswitch ) ).once
60
+ Trema::OpenflowSwitch.should_receive(:add).with(an_instance_of(OpenVswitch)).once
61
61
 
62
62
  @syntax.instance_eval do
63
- vswitch { dpid "0xabc" }
63
+ vswitch { dpid '0xabc' }
64
64
  end
65
65
  end
66
66
 
67
67
 
68
68
  it "should recognize 'vhost' directive" do
69
- Trema::Host.should_receive( :add ).with( an_instance_of( Trema::Host ) ).once
69
+ Trema::Host.should_receive(:add).with(an_instance_of(Trema::Host)).once
70
70
 
71
71
  @syntax.instance_eval do
72
- vhost { }
72
+ vhost {}
73
73
  end
74
74
  end
75
75
 
76
76
 
77
77
  it "should recognize 'filter' directive" do
78
- Trema::PacketinFilter.should_receive( :add ).with( an_instance_of( Trema::PacketinFilter ) ).once
78
+ Trema::PacketinFilter.should_receive(:add).with(an_instance_of(Trema::PacketinFilter)).once
79
79
 
80
80
  @syntax.instance_eval do
81
- filter :lldp => "LLDP RULE", :packet_in => "PACKET-IN RULE"
81
+ filter :lldp => 'LLDP RULE', :packet_in => 'PACKET-IN RULE'
82
82
  end
83
83
  end
84
84
 
85
85
 
86
86
  it "should recognize 'event' directive" do
87
- Trema::SwitchManager.should_receive( :add ).with( an_instance_of( Trema::SwitchManager ) ).once
87
+ Trema::SwitchManager.should_receive(:add).with(an_instance_of(Trema::SwitchManager)).once
88
88
 
89
89
  @syntax.instance_eval do
90
- event "RULE"
90
+ event 'RULE'
91
91
  end
92
92
  end
93
93
 
94
94
 
95
95
  it "should recognize 'run' directive" do
96
- Trema::App.should_receive( :add ).with( an_instance_of( Trema::App ) ).once
96
+ Trema::App.should_receive(:add).with(an_instance_of(Trema::App)).once
97
97
 
98
98
  @syntax.instance_eval do
99
- run( "My App" ) { }
99
+ run('My App') {}
100
100
  end
101
101
  end
102
102
  end
@@ -16,42 +16,42 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "..", "spec_helper" )
20
- require "trema/dsl/vhost"
19
+ require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
20
+ require 'trema/dsl/vhost'
21
21
 
22
22
 
23
23
  module Trema
24
24
  module DSL
25
25
  describe Vhost do
26
26
  describe :name do
27
- context "when name empty" do
27
+ context 'when name empty' do
28
28
  before { @vhost = Vhost.new }
29
29
 
30
- subject { @vhost[ :name ] }
30
+ subject { @vhost[ :name] }
31
31
 
32
- context "and IP address empty" do
32
+ context 'and IP address empty' do
33
33
  it { should be_nil }
34
34
  end
35
35
 
36
- context "and IP address is 192.168.100.100" do
37
- before { @vhost.ip "192.168.100.100" }
36
+ context 'and IP address is 192.168.100.100' do
37
+ before { @vhost.ip '192.168.100.100' }
38
38
 
39
- specify { should == "192.168.100.100" }
39
+ specify { should == '192.168.100.100' }
40
40
  end
41
41
  end
42
42
 
43
43
 
44
44
  context "when name is \"Yutaro's host\"" do
45
- before { @vhost = Vhost.new( "Yutaro's host" ) }
45
+ before { @vhost = Vhost.new("Yutaro's host") }
46
46
 
47
- subject { @vhost[ :name ] }
47
+ subject { @vhost[ :name] }
48
48
 
49
- context "and ip address empty" do
49
+ context 'and ip address empty' do
50
50
  it { should == "Yutaro's host" }
51
51
  end
52
52
 
53
- context "and ip address 192.168.100.100" do
54
- before { @vhost.ip "192.168.100.100" }
53
+ context 'and ip address 192.168.100.100' do
54
+ before { @vhost.ip '192.168.100.100' }
55
55
 
56
56
  it { should == "Yutaro's host" }
57
57
  end
@@ -60,76 +60,76 @@ module Trema
60
60
 
61
61
 
62
62
  describe :promisc do
63
- before { @vhost = Vhost.new( "Yutaro's host" ) }
63
+ before { @vhost = Vhost.new("Yutaro's host") }
64
64
 
65
- subject { @vhost[ :promisc ] }
65
+ subject { @vhost[ :promisc] }
66
66
 
67
- context "when promisc off" do
68
- before { @vhost.promisc "off" }
67
+ context 'when promisc off' do
68
+ before { @vhost.promisc 'off' }
69
69
 
70
70
  it { should be_false }
71
71
  end
72
72
 
73
73
 
74
- context "when promisc no" do
75
- before { @vhost.promisc "no" }
74
+ context 'when promisc no' do
75
+ before { @vhost.promisc 'no' }
76
76
 
77
77
  it { should be_false }
78
78
  end
79
79
 
80
80
 
81
- context "when promisc on" do
82
- before { @vhost.promisc "on" }
81
+ context 'when promisc on' do
82
+ before { @vhost.promisc 'on' }
83
83
 
84
84
  it { should be_true }
85
85
  end
86
86
 
87
87
 
88
- context "when promisc yes" do
89
- before { @vhost.promisc "yes" }
88
+ context 'when promisc yes' do
89
+ before { @vhost.promisc 'yes' }
90
90
 
91
91
  it { should be_true }
92
92
  end
93
93
 
94
94
 
95
- context "when promisc INVALID_VALUE" do
95
+ context 'when promisc INVALID_VALUE' do
96
96
  specify do
97
- expect { @vhost.promisc "INVALID_VALUE" }.to raise_error( Trema::DSL::SyntaxError )
97
+ expect { @vhost.promisc 'INVALID_VALUE' }.to raise_error(Trema::DSL::SyntaxError)
98
98
  end
99
99
  end
100
100
  end
101
101
 
102
102
 
103
103
  describe :netmask do
104
- before { @vhost = Vhost.new( "Yutaro's host" ) }
104
+ before { @vhost = Vhost.new("Yutaro's host") }
105
105
 
106
- subject { @vhost[ :netmask ] }
106
+ subject { @vhost[ :netmask] }
107
107
 
108
- context "when netmask empty" do
108
+ context 'when netmask empty' do
109
109
  it { should be_nil }
110
110
  end
111
111
 
112
- context "when netmask is 255.255.255.0" do
113
- before { @vhost.netmask "255.255.255.0" }
112
+ context 'when netmask is 255.255.255.0' do
113
+ before { @vhost.netmask '255.255.255.0' }
114
114
 
115
- it { should == "255.255.255.0" }
115
+ it { should == '255.255.255.0' }
116
116
  end
117
117
  end
118
118
 
119
119
 
120
120
  describe :mac do
121
- before { @vhost = Vhost.new( "Yutaro's host" ) }
121
+ before { @vhost = Vhost.new("Yutaro's host") }
122
122
 
123
- subject { @vhost[ :mac ] }
123
+ subject { @vhost[ :mac] }
124
124
 
125
- context "when mac empty" do
125
+ context 'when mac empty' do
126
126
  it { should be_nil }
127
127
  end
128
128
 
129
- context "when mac is 00:00:00:01:00:01" do
130
- before { @vhost.mac "00:00:00:01:00:01" }
129
+ context 'when mac is 00:00:00:01:00:01' do
130
+ before { @vhost.mac '00:00:00:01:00:01' }
131
131
 
132
- it { should == "00:00:00:01:00:01" }
132
+ it { should == '00:00:00:01:00:01' }
133
133
  end
134
134
  end
135
135
  end
@@ -16,8 +16,8 @@
16
16
  #
17
17
 
18
18
 
19
- require File.join( File.dirname( __FILE__ ), "..", "..", "spec_helper" )
20
- require "trema/dsl/vswitch"
19
+ require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
20
+ require 'trema/dsl/vswitch'
21
21
 
22
22
 
23
23
  module Trema
@@ -28,44 +28,44 @@ module Trema
28
28
  end
29
29
 
30
30
 
31
- context %[when parsing "vswitch { ... }"] do
32
- it %[recognizes "dpid DATAPATH_ID" directive] do
33
- expect { @vswitch.dpid "0xabc" }.not_to raise_error
31
+ context 'when parsing "vswitch { ... }"' do
32
+ it 'recognizes "dpid DATAPATH_ID" directive' do
33
+ expect { @vswitch.dpid '0xabc' }.not_to raise_error
34
34
  end
35
35
 
36
36
 
37
- it %[recognizes "datapath_id DATAPATH_ID" directive] do
38
- expect { @vswitch.datapath_id "0xabc" }.not_to raise_error
37
+ it 'recognizes "datapath_id DATAPATH_ID" directive' do
38
+ expect { @vswitch.datapath_id '0xabc' }.not_to raise_error
39
39
  end
40
40
 
41
41
 
42
- it %[recognizes "ports PORT_NUMBERS" directive] do
43
- expect { @vswitch.ports "0-4" }.not_to raise_error
42
+ it 'recognizes "ports PORT_NUMBERS" directive' do
43
+ expect { @vswitch.ports '0-4' }.not_to raise_error
44
44
  end
45
45
 
46
46
 
47
- it %[recognizes "ip IP_ADDRESS" directive] do
48
- expect { @vswitch.ip "192.168.0.1" }.not_to raise_error
47
+ it 'recognizes "ip IP_ADDRESS" directive' do
48
+ expect { @vswitch.ip '192.168.0.1' }.not_to raise_error
49
49
  end
50
50
  end
51
51
 
52
52
 
53
- context "when getting the attributes of a vswitch" do
54
- it "returns its dpid in long format" do
55
- @vswitch.dpid "0xabc"
56
- expect( @vswitch[ :dpid_long ] ).to eq( "0000000000000abc" )
53
+ context 'when getting the attributes of a vswitch' do
54
+ it 'returns its dpid in long format' do
55
+ @vswitch.dpid '0xabc'
56
+ expect(@vswitch[ :dpid_long]).to eq('0000000000000abc')
57
57
  end
58
58
 
59
59
 
60
- it "returns its dpid in short format" do
61
- @vswitch.dpid "0xabc"
62
- expect( @vswitch[ :dpid_short ] ).to eq( "0xabc" )
60
+ it 'returns its dpid in short format' do
61
+ @vswitch.dpid '0xabc'
62
+ expect(@vswitch[ :dpid_short]).to eq('0xabc')
63
63
  end
64
64
 
65
65
 
66
- it "returns its ip address" do
67
- @vswitch.ip "192.168.0.1"
68
- expect( @vswitch[ :ip ] ).to eq( "192.168.0.1" )
66
+ it 'returns its ip address' do
67
+ @vswitch.ip '192.168.0.1'
68
+ expect(@vswitch[ :ip]).to eq('192.168.0.1')
69
69
  end
70
70
  end
71
71
  end
@@ -16,63 +16,63 @@
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
23
  module Trema
24
- describe EchoReply, ".new" do
25
- it_should_behave_like "any Openflow message with default transaction ID"
26
- its( :user_data ) { should be_nil }
24
+ describe EchoReply, '.new' do
25
+ it_should_behave_like 'any Openflow message with default transaction ID'
26
+ its(:user_data) { should be_nil }
27
27
  end
28
28
 
29
29
 
30
- describe EchoReply, ".new(nil)" do
31
- subject { EchoReply.new( nil ) }
32
- it_should_behave_like "any Openflow message with default transaction ID"
33
- its( :user_data ) { should be_nil }
30
+ describe EchoReply, '.new(nil)' do
31
+ subject { EchoReply.new(nil) }
32
+ it_should_behave_like 'any Openflow message with default transaction ID'
33
+ its(:user_data) { should be_nil }
34
34
  end
35
35
 
36
36
 
37
- describe EchoReply, ".new(transaction_id)" do
38
- subject { EchoReply.new( transaction_id ) }
39
- it_should_behave_like "any Openflow message with transaction ID"
37
+ describe EchoReply, '.new(transaction_id)' do
38
+ subject { EchoReply.new(transaction_id) }
39
+ it_should_behave_like 'any Openflow message with transaction ID'
40
40
  end
41
41
 
42
42
 
43
- describe EchoReply, ".new(:transaction_id => value)" do
44
- subject { EchoReply.new( :transaction_id => transaction_id ) }
45
- it_should_behave_like "any Openflow message with transaction ID"
43
+ describe EchoReply, '.new(:transaction_id => value)' do
44
+ subject { EchoReply.new(:transaction_id => transaction_id) }
45
+ it_should_behave_like 'any Openflow message with transaction ID'
46
46
  end
47
47
 
48
48
 
49
- describe EchoReply, ".new(:xid => value)" do
50
- subject { EchoReply.new( :xid => xid ) }
51
- it_should_behave_like "any Openflow message with xid"
49
+ describe EchoReply, '.new(:xid => value)' do
50
+ subject { EchoReply.new(:xid => xid) }
51
+ it_should_behave_like 'any Openflow message with xid'
52
52
  end
53
53
 
54
54
 
55
- describe EchoReply, ".new(:user_data => value)" do
56
- subject { EchoReply.new( :user_data => user_data ) }
57
- it_should_behave_like "any Openflow message with user_data"
55
+ describe EchoReply, '.new(:user_data => value)' do
56
+ subject { EchoReply.new(:user_data => user_data) }
57
+ it_should_behave_like 'any Openflow message with user_data'
58
58
  end
59
59
 
60
60
 
61
- describe EchoReply, ".new(:transaction_id => value, :user_data => value)" do
62
- subject { EchoReply.new( :transaction_id => transaction_id, :user_data => user_data ) }
61
+ describe EchoReply, '.new(:transaction_id => value, :user_data => value)' do
62
+ subject { EchoReply.new(:transaction_id => transaction_id, :user_data => user_data) }
63
63
 
64
64
  context 'transaction_id: 123, user_data: "USER DATA"' do
65
- let( :transaction_id ) { 123 }
66
- let( :user_data ) { "USER DATA" }
67
- its( :transaction_id ) { should == 123 }
68
- its( :xid ) { should == 123 }
69
- its( :user_data ) { should == "USER DATA" }
65
+ let(:transaction_id) { 123 }
66
+ let(:user_data) { 'USER DATA' }
67
+ its(:transaction_id) { should == 123 }
68
+ its(:xid) { should == 123 }
69
+ its(:user_data) { should == 'USER DATA' }
70
70
  end
71
71
  end
72
72
 
73
73
 
74
74
  describe EchoReply, '.new("INVALID OPTION")' do
75
- it { expect { EchoReply.new "INVALID OPTION" }.to raise_error( TypeError ) }
75
+ it { expect { EchoReply.new 'INVALID OPTION' }.to raise_error(TypeError) }
76
76
  end
77
77
  end
78
78
 
@@ -16,107 +16,107 @@
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
- shared_examples_for "echo reply message" do
23
+ shared_examples_for 'echo reply message' do
24
24
  class EchoReplyController < Controller; end
25
25
 
26
26
  it "should be logged to the switch's log", :sudo => true do
27
- network {
28
- vswitch( "echo" ) { datapath_id 0xabc }
29
- }.run( EchoReplyController ) {
30
- controller( "EchoReplyController" ).send_message( 0xabc, subject )
27
+ network do
28
+ vswitch('echo') { datapath_id 0xabc }
29
+ end.run(EchoReplyController) do
30
+ controller('EchoReplyController').send_message(0xabc, subject)
31
31
  sleep 2 # FIXME: wait to send_message
32
- expect( IO.read( File.join( Trema.log, "openflowd.echo.log" ) ) ).to include( "OFPT_ECHO_REPLY" )
33
- }
32
+ expect(IO.read(File.join(Trema.log, 'openflowd.echo.log'))).to include('OFPT_ECHO_REPLY')
33
+ end
34
34
  end
35
35
  end
36
36
 
37
37
 
38
38
  module Trema
39
- describe EchoRequest, ".new" do
40
- it_should_behave_like "any Openflow message with default transaction ID"
41
- it_should_behave_like "echo reply message"
42
- its( :user_data ) { should be_nil }
39
+ describe EchoRequest, '.new' do
40
+ it_should_behave_like 'any Openflow message with default transaction ID'
41
+ it_should_behave_like 'echo reply message'
42
+ its(:user_data) { should be_nil }
43
43
  end
44
44
 
45
45
 
46
- describe EchoRequest, ".new(nil)" do
47
- subject { EchoRequest.new( nil ) }
48
- it_should_behave_like "any Openflow message with default transaction ID"
49
- it_should_behave_like "echo reply message"
50
- its( :user_data ) { should be_nil }
46
+ describe EchoRequest, '.new(nil)' do
47
+ subject { EchoRequest.new(nil) }
48
+ it_should_behave_like 'any Openflow message with default transaction ID'
49
+ it_should_behave_like 'echo reply message'
50
+ its(:user_data) { should be_nil }
51
51
  end
52
52
 
53
53
 
54
- describe EchoRequest, ".new(transaction_id)" do
55
- subject { EchoRequest.new( transaction_id ) }
56
- it_should_behave_like "any Openflow message with transaction ID"
54
+ describe EchoRequest, '.new(transaction_id)' do
55
+ subject { EchoRequest.new(transaction_id) }
56
+ it_should_behave_like 'any Openflow message with transaction ID'
57
57
 
58
- context "when sent to a switch" do
59
- let( :transaction_id ) { 123 }
60
- it_should_behave_like "echo reply message"
58
+ context 'when sent to a switch' do
59
+ let(:transaction_id) { 123 }
60
+ it_should_behave_like 'echo reply message'
61
61
  end
62
62
  end
63
63
 
64
64
 
65
- describe EchoRequest, ".new(:transaction_id => value)" do
66
- subject { EchoRequest.new( :transaction_id => transaction_id ) }
67
- it_should_behave_like "any Openflow message with transaction ID"
65
+ describe EchoRequest, '.new(:transaction_id => value)' do
66
+ subject { EchoRequest.new(:transaction_id => transaction_id) }
67
+ it_should_behave_like 'any Openflow message with transaction ID'
68
68
 
69
- context "when sent to a switch" do
70
- let( :transaction_id ) { 123 }
71
- it_should_behave_like "echo reply message"
69
+ context 'when sent to a switch' do
70
+ let(:transaction_id) { 123 }
71
+ it_should_behave_like 'echo reply message'
72
72
  end
73
73
  end
74
74
 
75
75
 
76
- describe EchoRequest, ".new(:xid => value)" do
77
- subject { EchoRequest.new( :xid => xid ) }
78
- it_should_behave_like "any Openflow message with xid"
76
+ describe EchoRequest, '.new(:xid => value)' do
77
+ subject { EchoRequest.new(:xid => xid) }
78
+ it_should_behave_like 'any Openflow message with xid'
79
79
 
80
- context "when sent to a switch" do
81
- let( :xid ) { 123 }
82
- it_should_behave_like "echo reply message"
80
+ context 'when sent to a switch' do
81
+ let(:xid) { 123 }
82
+ it_should_behave_like 'echo reply message'
83
83
  end
84
84
  end
85
85
 
86
86
 
87
- describe EchoRequest, ".new(:user_data => value)" do
88
- subject { EchoRequest.new( :user_data => user_data ) }
89
- it_should_behave_like "any Openflow message with user_data"
87
+ describe EchoRequest, '.new(:user_data => value)' do
88
+ subject { EchoRequest.new(:user_data => user_data) }
89
+ it_should_behave_like 'any Openflow message with user_data'
90
90
 
91
- context "when sent to a switch" do
92
- let( :user_data ) { "USER DATA" }
93
- it_should_behave_like "echo reply message"
91
+ context 'when sent to a switch' do
92
+ let(:user_data) { 'USER DATA' }
93
+ it_should_behave_like 'echo reply message'
94
94
  end
95
95
  end
96
96
 
97
97
 
98
- describe EchoRequest, ".new(:transaction_id => value, :user_data => value)" do
99
- subject { EchoRequest.new( :transaction_id => transaction_id, :user_data => user_data ) }
98
+ describe EchoRequest, '.new(:transaction_id => value, :user_data => value)' do
99
+ subject { EchoRequest.new(:transaction_id => transaction_id, :user_data => user_data) }
100
100
 
101
101
  context 'transaction_id: 123, user_data: "USER DATA"', :nosudo => true do
102
- let( :transaction_id ) { 123 }
103
- let( :user_data ) { "USER DATA" }
102
+ let(:transaction_id) { 123 }
103
+ let(:user_data) { 'USER DATA' }
104
104
 
105
- its( :transaction_id ) { should == 123 }
106
- its( :xid ) { should == 123 }
107
- its( :user_data ) { should == "USER DATA" }
105
+ its(:transaction_id) { should == 123 }
106
+ its(:xid) { should == 123 }
107
+ its(:user_data) { should == 'USER DATA' }
108
108
  end
109
109
 
110
- context "when sent to a switch" do
111
- let( :transaction_id ) { 123 }
112
- let( :user_data ) { "USER DATA" }
113
- it_should_behave_like "echo reply message"
110
+ context 'when sent to a switch' do
111
+ let(:transaction_id) { 123 }
112
+ let(:user_data) { 'USER DATA' }
113
+ it_should_behave_like 'echo reply message'
114
114
  end
115
115
  end
116
116
 
117
117
 
118
118
  describe EchoRequest, '.new("INVALID OPTION")' do
119
- it { expect { EchoRequest.new "INVALID OPTION" }.to raise_error( TypeError ) }
119
+ it { expect { EchoRequest.new 'INVALID OPTION' }.to raise_error(TypeError) }
120
120
  end
121
121
  end
122
122