WasThreadStackProcessor 0.1.4 → 0.1.5
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/.document +5 -5
- data/Gemfile +26 -23
- data/Gemfile.lock +46 -52
- data/LICENSE.txt +20 -20
- data/README.rdoc +19 -19
- data/Rakefile +58 -58
- data/VERSION +1 -1
- data/WasThreadStackProcessor.gemspec +9 -9
- data/autotest/discover.rb +1 -1
- data/bin/WasThreadStackProcessor +23 -17
- data/lib/WasThreadStackProcessor.rb +32 -32
- data/lib/threadStack.rb +68 -68
- data/lib/threadStackCombinator.rb +10 -10
- data/lib/threadStackExtractor.rb +25 -25
- data/spec/WasThreadStackProcessor_spec.rb +41 -41
- data/spec/spec_helper.rb +12 -12
- data/spec/threadStackCombinator_spec.rb +53 -53
- data/spec/threadStackExtractor_spec.rb +63 -63
- data/spec/threadStack_spec.rb +72 -72
- metadata +103 -111
@@ -1,64 +1,64 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
-
require 'threadStackExtractor'
|
3
|
-
|
4
|
-
describe ThreadStackExtractor do
|
5
|
-
it "returns an empty array if the text is empty" do
|
6
|
-
file = double("File")
|
7
|
-
file.stub(:gets).and_return(nil)
|
8
|
-
threadStackExtractor = ThreadStackExtractor.new(file)
|
9
|
-
threadStacks = threadStackExtractor.getThreadStacks()
|
10
|
-
|
11
|
-
threadStacks.should be_empty
|
12
|
-
end
|
13
|
-
|
14
|
-
it "returns an array with an stack in the text has only one stack" do
|
15
|
-
file = double("File")
|
16
|
-
file.stub(:gets).and_return('3XMTHREADINFO "WebContainer : 425" (TID:0x000000000B48E100, sys_thread_t:0x000000000AA11040, state:R, native ID:0x000000000000146B) prio=5',
|
17
|
-
'4XESTACKTRACE at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)',
|
18
|
-
'4XESTACKTRACE at com/ibm/io/async/AsyncLibrary.getCompletionData3(AsyncLibrary.java:602(Compiled Code))',
|
19
|
-
'4XESTACKTRACE at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))',
|
20
|
-
'4XESTACKTRACE at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
21
|
-
'4XESTACKTRACE at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))',
|
22
|
-
nil)
|
23
|
-
threadStackExtractor = ThreadStackExtractor.new(file)
|
24
|
-
threadStacks = threadStackExtractor.getThreadStacks()
|
25
|
-
|
26
|
-
threadStacks[0][0].should == 'at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)'
|
27
|
-
end
|
28
|
-
|
29
|
-
it "returns an array with four stacks in the text has four stacks" do
|
30
|
-
file = double("File")
|
31
|
-
file.stub(:gets).and_return('3XMTHREADINFO "WebContainer : 425" (TID:0x000000000B48E100, sys_thread_t:0x000000000AA11040, state:R, native ID:0x000000000000146B) prio=5',
|
32
|
-
'4XESTACKTRACE at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)',
|
33
|
-
'4XESTACKTRACE at com/ibm/io/async/AsyncLibrary.getCompletionData3(AsyncLibrary.java:602(Compiled Code))',
|
34
|
-
'4XESTACKTRACE at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))',
|
35
|
-
'4XESTACKTRACE at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
36
|
-
'4XESTACKTRACE at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))',
|
37
|
-
'3XMTHREADINFO "NotificationServiceDispatcher : 143" (TID:0x00002AAAD843EF00, sys_thread_t:0x000000000AA1D1C0, state:CW, native ID:0x0000000000000F76) prio=5',
|
38
|
-
'4XESTACKTRACE at java/lang/Object.wait(Native Method)',
|
39
|
-
'4XESTACKTRACE at java/lang/Object.wait(Object.java:231(Compiled Code))',
|
40
|
-
'4XESTACKTRACE at com/ibm/ws/util/BoundedBuffer.waitGet_(BoundedBuffer.java:195(Compiled Code))',
|
41
|
-
'4XESTACKTRACE at com/ibm/ws/util/BoundedBuffer.take(BoundedBuffer.java:564(Compiled Code))',
|
42
|
-
'4XESTACKTRACE at com/ibm/ws/util/ThreadPool.getTask(ThreadPool.java:840(Compiled Code))',
|
43
|
-
'4XESTACKTRACE at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1558(Compiled Code))',
|
44
|
-
'3XMTHREADINFO "Java indexing" (TID:0x00002AAAE42C1800, sys_thread_t:0x00002AAAD89EF530, state:CW, native ID:0x0000000000000FA8) prio=4',
|
45
|
-
'4XESTACKTRACE at java/lang/Object.wait(Native Method)',
|
46
|
-
'4XESTACKTRACE at java/lang/Object.wait(Object.java:199(Compiled Code))',
|
47
|
-
'4XESTACKTRACE at org/eclipse/jdt/internal/core/search/processing/JobManager.run(JobManager.java:350)',
|
48
|
-
'4XESTACKTRACE at java/lang/Thread.run(Thread.java:811)',
|
49
|
-
'3XMTHREADINFO "Worker-1" (TID:0x000000000B2C1C00, sys_thread_t:0x00000000088A5208, state:CW, native ID:0x0000000000000FAB) prio=5',
|
50
|
-
'4XESTACKTRACE at java/lang/Object.wait(Native Method)',
|
51
|
-
'4XESTACKTRACE at java/lang/Object.wait(Object.java:231(Compiled Code))',
|
52
|
-
'4XESTACKTRACE at org/eclipse/core/internal/jobs/WorkerPool.sleep(WorkerPool.java:181(Compiled Code))',
|
53
|
-
'4XESTACKTRACE at org/eclipse/core/internal/jobs/WorkerPool.startJob(WorkerPool.java:218(Compiled Code))',
|
54
|
-
'4XESTACKTRACE at org/eclipse/core/internal/jobs/Worker.run(Worker.java:51)',
|
55
|
-
nil)
|
56
|
-
threadStackExtractor = ThreadStackExtractor.new(file)
|
57
|
-
threadStacks = threadStackExtractor.getThreadStacks()
|
58
|
-
|
59
|
-
threadStacks[0][0].should == 'at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)'
|
60
|
-
threadStacks[1][0].should == 'at java/lang/Object.wait(Native Method)'
|
61
|
-
threadStacks[2][0].should == 'at java/lang/Object.wait(Native Method)'
|
62
|
-
threadStacks[3][0].should == 'at java/lang/Object.wait(Native Method)'
|
63
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
require 'threadStackExtractor'
|
3
|
+
|
4
|
+
describe ThreadStackExtractor do
|
5
|
+
it "returns an empty array if the text is empty" do
|
6
|
+
file = double("File")
|
7
|
+
file.stub(:gets).and_return(nil)
|
8
|
+
threadStackExtractor = ThreadStackExtractor.new(file)
|
9
|
+
threadStacks = threadStackExtractor.getThreadStacks()
|
10
|
+
|
11
|
+
threadStacks.should be_empty
|
12
|
+
end
|
13
|
+
|
14
|
+
it "returns an array with an stack in the text has only one stack" do
|
15
|
+
file = double("File")
|
16
|
+
file.stub(:gets).and_return('3XMTHREADINFO "WebContainer : 425" (TID:0x000000000B48E100, sys_thread_t:0x000000000AA11040, state:R, native ID:0x000000000000146B) prio=5',
|
17
|
+
'4XESTACKTRACE at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)',
|
18
|
+
'4XESTACKTRACE at com/ibm/io/async/AsyncLibrary.getCompletionData3(AsyncLibrary.java:602(Compiled Code))',
|
19
|
+
'4XESTACKTRACE at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))',
|
20
|
+
'4XESTACKTRACE at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
21
|
+
'4XESTACKTRACE at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))',
|
22
|
+
nil)
|
23
|
+
threadStackExtractor = ThreadStackExtractor.new(file)
|
24
|
+
threadStacks = threadStackExtractor.getThreadStacks()
|
25
|
+
|
26
|
+
threadStacks[0][0].should == 'at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)'
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns an array with four stacks in the text has four stacks" do
|
30
|
+
file = double("File")
|
31
|
+
file.stub(:gets).and_return('3XMTHREADINFO "WebContainer : 425" (TID:0x000000000B48E100, sys_thread_t:0x000000000AA11040, state:R, native ID:0x000000000000146B) prio=5',
|
32
|
+
'4XESTACKTRACE at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)',
|
33
|
+
'4XESTACKTRACE at com/ibm/io/async/AsyncLibrary.getCompletionData3(AsyncLibrary.java:602(Compiled Code))',
|
34
|
+
'4XESTACKTRACE at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))',
|
35
|
+
'4XESTACKTRACE at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
36
|
+
'4XESTACKTRACE at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))',
|
37
|
+
'3XMTHREADINFO "NotificationServiceDispatcher : 143" (TID:0x00002AAAD843EF00, sys_thread_t:0x000000000AA1D1C0, state:CW, native ID:0x0000000000000F76) prio=5',
|
38
|
+
'4XESTACKTRACE at java/lang/Object.wait(Native Method)',
|
39
|
+
'4XESTACKTRACE at java/lang/Object.wait(Object.java:231(Compiled Code))',
|
40
|
+
'4XESTACKTRACE at com/ibm/ws/util/BoundedBuffer.waitGet_(BoundedBuffer.java:195(Compiled Code))',
|
41
|
+
'4XESTACKTRACE at com/ibm/ws/util/BoundedBuffer.take(BoundedBuffer.java:564(Compiled Code))',
|
42
|
+
'4XESTACKTRACE at com/ibm/ws/util/ThreadPool.getTask(ThreadPool.java:840(Compiled Code))',
|
43
|
+
'4XESTACKTRACE at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1558(Compiled Code))',
|
44
|
+
'3XMTHREADINFO "Java indexing" (TID:0x00002AAAE42C1800, sys_thread_t:0x00002AAAD89EF530, state:CW, native ID:0x0000000000000FA8) prio=4',
|
45
|
+
'4XESTACKTRACE at java/lang/Object.wait(Native Method)',
|
46
|
+
'4XESTACKTRACE at java/lang/Object.wait(Object.java:199(Compiled Code))',
|
47
|
+
'4XESTACKTRACE at org/eclipse/jdt/internal/core/search/processing/JobManager.run(JobManager.java:350)',
|
48
|
+
'4XESTACKTRACE at java/lang/Thread.run(Thread.java:811)',
|
49
|
+
'3XMTHREADINFO "Worker-1" (TID:0x000000000B2C1C00, sys_thread_t:0x00000000088A5208, state:CW, native ID:0x0000000000000FAB) prio=5',
|
50
|
+
'4XESTACKTRACE at java/lang/Object.wait(Native Method)',
|
51
|
+
'4XESTACKTRACE at java/lang/Object.wait(Object.java:231(Compiled Code))',
|
52
|
+
'4XESTACKTRACE at org/eclipse/core/internal/jobs/WorkerPool.sleep(WorkerPool.java:181(Compiled Code))',
|
53
|
+
'4XESTACKTRACE at org/eclipse/core/internal/jobs/WorkerPool.startJob(WorkerPool.java:218(Compiled Code))',
|
54
|
+
'4XESTACKTRACE at org/eclipse/core/internal/jobs/Worker.run(Worker.java:51)',
|
55
|
+
nil)
|
56
|
+
threadStackExtractor = ThreadStackExtractor.new(file)
|
57
|
+
threadStacks = threadStackExtractor.getThreadStacks()
|
58
|
+
|
59
|
+
threadStacks[0][0].should == 'at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)'
|
60
|
+
threadStacks[1][0].should == 'at java/lang/Object.wait(Native Method)'
|
61
|
+
threadStacks[2][0].should == 'at java/lang/Object.wait(Native Method)'
|
62
|
+
threadStacks[3][0].should == 'at java/lang/Object.wait(Native Method)'
|
63
|
+
end
|
64
64
|
end
|
data/spec/threadStack_spec.rb
CHANGED
@@ -1,73 +1,73 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
-
require 'threadStack'
|
3
|
-
|
4
|
-
describe ThreadStack do
|
5
|
-
describe "After creation" do
|
6
|
-
it "must contains the stack passed as an Array" do
|
7
|
-
stack = ['at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)',
|
8
|
-
'at com/ibm/io/async/AsyncLibrary.getCompletionData3(AsyncLibrary.java:602(Compiled Code))',
|
9
|
-
'at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))',
|
10
|
-
'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
11
|
-
'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))']
|
12
|
-
|
13
|
-
threadStack = ThreadStack.new(stack)
|
14
|
-
|
15
|
-
threadStack.call.text.should == 'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))'
|
16
|
-
threadStack.call.count.should == 1
|
17
|
-
threadStack.call.children[0].text.should == 'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))'
|
18
|
-
threadStack.call.children[0].children[0].text.should == 'at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))'
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe "A merge" do
|
23
|
-
before(:each) do
|
24
|
-
@threadStack = ThreadStack.new(['at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)',
|
25
|
-
'at com/ibm/io/async/AsyncLibrary.getCompletionData3(AsyncLibrary.java:602(Compiled Code))',
|
26
|
-
'at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))',
|
27
|
-
'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
28
|
-
'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))'])
|
29
|
-
|
30
|
-
@threadStack2 = ThreadStack.new(['at java/lang/Object.wait(Native Method)',
|
31
|
-
'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
32
|
-
'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))'])
|
33
|
-
|
34
|
-
@threadStack3 = ThreadStack.new(['at java/lang/Object.wait(Native Method)',
|
35
|
-
'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))'])
|
36
|
-
|
37
|
-
@threadStack4 = ThreadStack.new(['at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)',
|
38
|
-
'at com/ibm/io/async/AsyncLibrary.getCompletionData3(AsyncLibrary.java:602(Compiled Code))',
|
39
|
-
'at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))',
|
40
|
-
'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
41
|
-
'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))'])
|
42
|
-
end
|
43
|
-
|
44
|
-
it "must contains two branches after a merge with other ThreadStack with common calls" do
|
45
|
-
@threadStack.merge(@threadStack2)
|
46
|
-
@threadStack.call.text.should == 'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))'
|
47
|
-
@threadStack.call.count.should == 2
|
48
|
-
@threadStack.call.children[0].text.should == 'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))'
|
49
|
-
@threadStack.call.children[0].count.should == 2
|
50
|
-
@threadStack.call.children[0].children[0].text.should == 'at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))'
|
51
|
-
@threadStack.call.children[0].children[0].count.should == 1
|
52
|
-
@threadStack.call.children[0].children[1].text.should == 'at java/lang/Object.wait(Native Method)'
|
53
|
-
@threadStack.call.children[0].children[1].count.should == 1
|
54
|
-
end
|
55
|
-
|
56
|
-
it "must return true if the merge is done" do
|
57
|
-
@threadStack.merge(@threadStack2).should be true
|
58
|
-
end
|
59
|
-
|
60
|
-
it "must return false if the merge is not done" do
|
61
|
-
@threadStack.merge(@threadStack3).should be false
|
62
|
-
end
|
63
|
-
|
64
|
-
it "must put count to two in all calls if the thread stacks are the same" do
|
65
|
-
@threadStack.merge(@threadStack4)
|
66
|
-
@threadStack.call.count.should == 2
|
67
|
-
@threadStack.call.children[0].count.should == 2
|
68
|
-
@threadStack.call.children[0].children[0].count.should == 2
|
69
|
-
@threadStack.call.children[0].children[0].children[0].count.should == 2
|
70
|
-
@threadStack.call.children[0].children[0].children[0].children[0].count.should == 2
|
71
|
-
end
|
72
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
require 'threadStack'
|
3
|
+
|
4
|
+
describe ThreadStack do
|
5
|
+
describe "After creation" do
|
6
|
+
it "must contains the stack passed as an Array" do
|
7
|
+
stack = ['at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)',
|
8
|
+
'at com/ibm/io/async/AsyncLibrary.getCompletionData3(AsyncLibrary.java:602(Compiled Code))',
|
9
|
+
'at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))',
|
10
|
+
'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
11
|
+
'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))']
|
12
|
+
|
13
|
+
threadStack = ThreadStack.new(stack)
|
14
|
+
|
15
|
+
threadStack.call.text.should == 'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))'
|
16
|
+
threadStack.call.count.should == 1
|
17
|
+
threadStack.call.children[0].text.should == 'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))'
|
18
|
+
threadStack.call.children[0].children[0].text.should == 'at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "A merge" do
|
23
|
+
before(:each) do
|
24
|
+
@threadStack = ThreadStack.new(['at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)',
|
25
|
+
'at com/ibm/io/async/AsyncLibrary.getCompletionData3(AsyncLibrary.java:602(Compiled Code))',
|
26
|
+
'at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))',
|
27
|
+
'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
28
|
+
'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))'])
|
29
|
+
|
30
|
+
@threadStack2 = ThreadStack.new(['at java/lang/Object.wait(Native Method)',
|
31
|
+
'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
32
|
+
'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))'])
|
33
|
+
|
34
|
+
@threadStack3 = ThreadStack.new(['at java/lang/Object.wait(Native Method)',
|
35
|
+
'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))'])
|
36
|
+
|
37
|
+
@threadStack4 = ThreadStack.new(['at com/ibm/io/async/AsyncLibrary.aio_getioev3(Native Method)',
|
38
|
+
'at com/ibm/io/async/AsyncLibrary.getCompletionData3(AsyncLibrary.java:602(Compiled Code))',
|
39
|
+
'at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))',
|
40
|
+
'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))',
|
41
|
+
'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))'])
|
42
|
+
end
|
43
|
+
|
44
|
+
it "must contains two branches after a merge with other ThreadStack with common calls" do
|
45
|
+
@threadStack.merge(@threadStack2)
|
46
|
+
@threadStack.call.text.should == 'at com/ibm/ws/util/ThreadPool$Worker.run(ThreadPool.java:1551(Compiled Code))'
|
47
|
+
@threadStack.call.count.should == 2
|
48
|
+
@threadStack.call.children[0].text.should == 'at com/ibm/io/async/ResultHandler$2.run(ResultHandler.java:881(Compiled Code))'
|
49
|
+
@threadStack.call.children[0].count.should == 2
|
50
|
+
@threadStack.call.children[0].children[0].text.should == 'at com/ibm/io/async/ResultHandler.runEventProcessingLoop(ResultHandler.java:287(Compiled Code))'
|
51
|
+
@threadStack.call.children[0].children[0].count.should == 1
|
52
|
+
@threadStack.call.children[0].children[1].text.should == 'at java/lang/Object.wait(Native Method)'
|
53
|
+
@threadStack.call.children[0].children[1].count.should == 1
|
54
|
+
end
|
55
|
+
|
56
|
+
it "must return true if the merge is done" do
|
57
|
+
@threadStack.merge(@threadStack2).should be true
|
58
|
+
end
|
59
|
+
|
60
|
+
it "must return false if the merge is not done" do
|
61
|
+
@threadStack.merge(@threadStack3).should be false
|
62
|
+
end
|
63
|
+
|
64
|
+
it "must put count to two in all calls if the thread stacks are the same" do
|
65
|
+
@threadStack.merge(@threadStack4)
|
66
|
+
@threadStack.call.count.should == 2
|
67
|
+
@threadStack.call.children[0].count.should == 2
|
68
|
+
@threadStack.call.children[0].children[0].count.should == 2
|
69
|
+
@threadStack.call.children[0].children[0].children[0].count.should == 2
|
70
|
+
@threadStack.call.children[0].children[0].children[0].children[0].count.should == 2
|
71
|
+
end
|
72
|
+
end
|
73
73
|
end
|
metadata
CHANGED
@@ -1,125 +1,123 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: WasThreadStackProcessor
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.5
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 4
|
10
|
-
version: 0.1.4
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Alberto Paz
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
12
|
+
date: 2013-04-21 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: hirb
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.6.2
|
22
|
+
type: :runtime
|
21
23
|
prerelease: false
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
25
|
none: false
|
25
|
-
requirements:
|
26
|
+
requirements:
|
26
27
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
|
30
|
-
- 2
|
31
|
-
- 10
|
32
|
-
- 0
|
33
|
-
version: 2.10.0
|
34
|
-
version_requirements: *id001
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.6.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
35
31
|
name: rspec
|
36
|
-
|
37
|
-
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 2.10.0
|
38
38
|
type: :development
|
39
|
-
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
41
|
none: false
|
41
|
-
requirements:
|
42
|
+
requirements:
|
42
43
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
- 3
|
47
|
-
- 12
|
48
|
-
version: "3.12"
|
49
|
-
version_requirements: *id002
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.10.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
50
47
|
name: rdoc
|
51
|
-
|
52
|
-
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.12'
|
53
54
|
type: :development
|
54
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
57
|
none: false
|
56
|
-
requirements:
|
58
|
+
requirements:
|
57
59
|
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
|
61
|
-
- 1
|
62
|
-
- 1
|
63
|
-
- 0
|
64
|
-
version: 1.1.0
|
65
|
-
version_requirements: *id003
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.12'
|
62
|
+
- !ruby/object:Gem::Dependency
|
66
63
|
name: bundler
|
67
|
-
|
68
|
-
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.1.0
|
69
70
|
type: :development
|
70
|
-
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
73
|
none: false
|
72
|
-
requirements:
|
74
|
+
requirements:
|
73
75
|
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
|
77
|
-
- 1
|
78
|
-
- 8
|
79
|
-
- 3
|
80
|
-
version: 1.8.3
|
81
|
-
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.1.0
|
78
|
+
- !ruby/object:Gem::Dependency
|
82
79
|
name: jeweler
|
83
|
-
|
84
|
-
prerelease: false
|
85
|
-
type: :development
|
86
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
87
81
|
none: false
|
88
|
-
requirements:
|
89
|
-
- -
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
|
92
|
-
segments:
|
93
|
-
- 0
|
94
|
-
version: "0"
|
95
|
-
version_requirements: *id005
|
96
|
-
name: rcov
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
prerelease: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 1.8.3
|
99
86
|
type: :development
|
100
|
-
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
89
|
none: false
|
102
|
-
requirements:
|
90
|
+
requirements:
|
103
91
|
- - ~>
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.8.3
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: simplecov
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
description: This utility extracts all the Thread Stacks from a set of thread dump
|
111
|
+
files of a WebSphere Application Server and generates a unique tree with all the
|
112
|
+
threads
|
114
113
|
email: alberto.pazjimenez@gmail.com
|
115
|
-
executables:
|
114
|
+
executables:
|
116
115
|
- WasThreadStackProcessor
|
117
116
|
extensions: []
|
118
|
-
|
119
|
-
extra_rdoc_files:
|
117
|
+
extra_rdoc_files:
|
120
118
|
- LICENSE.txt
|
121
119
|
- README.rdoc
|
122
|
-
files:
|
120
|
+
files:
|
123
121
|
- .document
|
124
122
|
- Gemfile
|
125
123
|
- Gemfile.lock
|
@@ -140,37 +138,31 @@ files:
|
|
140
138
|
- spec/threadStackExtractor_spec.rb
|
141
139
|
- spec/threadStack_spec.rb
|
142
140
|
homepage: http://github.com/japaz/WasThreadStackProcessor
|
143
|
-
licenses:
|
141
|
+
licenses:
|
144
142
|
- MIT
|
145
143
|
post_install_message:
|
146
144
|
rdoc_options: []
|
147
|
-
|
148
|
-
require_paths:
|
145
|
+
require_paths:
|
149
146
|
- lib
|
150
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
151
148
|
none: false
|
152
|
-
requirements:
|
153
|
-
- -
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
|
156
|
-
segments:
|
149
|
+
requirements:
|
150
|
+
- - ! '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
segments:
|
157
154
|
- 0
|
158
|
-
|
159
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
|
+
hash: -785761197
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
157
|
none: false
|
161
|
-
requirements:
|
162
|
-
- -
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
|
165
|
-
segments:
|
166
|
-
- 0
|
167
|
-
version: "0"
|
158
|
+
requirements:
|
159
|
+
- - ! '>='
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
168
162
|
requirements: []
|
169
|
-
|
170
163
|
rubyforge_project:
|
171
|
-
rubygems_version: 1.8.
|
164
|
+
rubygems_version: 1.8.25
|
172
165
|
signing_key:
|
173
166
|
specification_version: 3
|
174
167
|
summary: Utility to process Thread Stacks from a WebSphere Application Server
|
175
168
|
test_files: []
|
176
|
-
|