File tree 3 files changed +41
-0
lines changed
3 files changed +41
-0
lines changed Original file line number Diff line number Diff line change 97
97
expect ( tracker . send ( :registry ) ) . to be_empty
98
98
end
99
99
end
100
+
101
+ context 'when process forks' do
102
+ it 'continues tracking in the fork' do
103
+ # Load rspec assertion code
104
+ expect ( 1 ) . to eq ( 1 )
105
+ expect ( 1 ) . to equal ( 1 )
106
+
107
+ expect ( tracker . send ( :registry ) ) . to be_empty
108
+ tracker . start
109
+
110
+ require_relative 'code_tracker_test_class_4'
111
+ expect ( tracker . send ( :registry ) . length ) . to eq ( 1 )
112
+ path = tracker . send ( :registry ) . to_a . dig ( 0 , 0 )
113
+ expect ( File . basename ( path ) ) . to eq ( "code_tracker_test_class_4.rb" )
114
+
115
+ expect_in_fork do
116
+ expect ( tracker . send ( :registry ) . length ) . to eq ( 1 )
117
+ path = tracker . send ( :registry ) . to_a . dig ( 0 , 0 )
118
+ expect ( File . basename ( path ) ) . to eq ( "code_tracker_test_class_4.rb" )
119
+
120
+ require_relative 'code_tracker_test_class_5'
121
+ expect ( tracker . send ( :registry ) . length ) . to eq ( 2 )
122
+ path = tracker . send ( :registry ) . to_a . dig ( 1 , 0 )
123
+ expect ( File . basename ( path ) ) . to eq ( "code_tracker_test_class_5.rb" )
124
+ end
125
+
126
+ begin
127
+ Process . waitpid
128
+ rescue Errno ::ECHILD
129
+ end
130
+
131
+ # Verify parent did not change
132
+ expect ( tracker . send ( :registry ) . length ) . to eq ( 1 )
133
+ path = tracker . send ( :registry ) . to_a . dig ( 0 , 0 )
134
+ expect ( File . basename ( path ) ) . to eq ( "code_tracker_test_class_4.rb" )
135
+ end
136
+ end
100
137
end
101
138
102
139
describe "#active?" do
Original file line number Diff line number Diff line change
1
+ class CodeTrackerTestClass4
2
+ end
Original file line number Diff line number Diff line change
1
+ class CodeTrackerTestClass5
2
+ end
You can’t perform that action at this time.
0 commit comments