Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
pulsar
提交
47dbfdb4
pulsar
项目概览
apache
/
pulsar
通知
129
Star
40
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
pulsar
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Pages
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
提交
体验新版 GitCode,发现更多精彩内容 >>
提交
47dbfdb4
编写于
9月 12, 2016
作者:
M
Matteo Merli
提交者:
GitHub
9月 12, 2016
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #9 from merlimat/master
Fixed more test that were flickering on the Travis CI build
上级
4f796e43
ddd814ac
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
110 addition
and
144 deletion
+110
-144
pom.xml
pom.xml
+54
-45
pulsar-broker/src/test/java/com/yahoo/pulsar/broker/admin/NamespacesTest.java
...st/java/com/yahoo/pulsar/broker/admin/NamespacesTest.java
+0
-10
pulsar-broker/src/test/java/com/yahoo/pulsar/broker/service/PersistentTopicE2ETest.java
...m/yahoo/pulsar/broker/service/PersistentTopicE2ETest.java
+2
-1
pulsar-broker/src/test/java/com/yahoo/pulsar/broker/service/ServerCnxTest.java
...t/java/com/yahoo/pulsar/broker/service/ServerCnxTest.java
+38
-70
pulsar-client-tools/src/main/java/com/yahoo/pulsar/client/cli/CmdConsume.java
...src/main/java/com/yahoo/pulsar/client/cli/CmdConsume.java
+3
-2
pulsar-client-tools/src/test/java/com/yahoo/pulsar/client/cli/PulsarClientToolTest.java
...ava/com/yahoo/pulsar/client/cli/PulsarClientToolTest.java
+13
-16
未找到文件。
pom.xml
浏览文件 @
47dbfdb4
...
...
@@ -395,35 +395,12 @@
</archive>
</configuration>
</plugin>
<plugin>
<groupId>
org.jacoco
</groupId>
<artifactId>
jacoco-maven-plugin
</artifactId>
<version>
0.7.7.201606060606
</version>
<executions>
<execution>
<id>
pre-unit-test
</id>
<goals>
<goal>
prepare-agent
</goal>
</goals>
</execution>
<execution>
<id>
post-test
</id>
<phase>
test
</phase>
<goals>
<goal>
report
</goal>
</goals>
<configuration>
<outputDirectory>
target/report
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-surefire-plugin
</artifactId>
<version>
2.19.1
</version>
<configuration>
<argLine>
${argLine}
-Xmx2G -XX:MaxDirectMemorySize=8G
<argLine>
-Xmx2G -XX:MaxDirectMemorySize=8G
-Dio.netty.leakDetectionLevel=advanced
</argLine>
</configuration>
</plugin>
...
...
@@ -571,27 +548,59 @@
</build>
<reporting>
<plugins>
<plugin>
<artifactId>
maven-javadoc-plugin
</artifactId>
<configuration>
<additionalparam>
-Xdoclint:none
</additionalparam>
</configuration>
</plugin>
<plugin>
<groupId>
org.jacoco
</groupId>
<artifactId>
jacoco-maven-plugin
</artifactId>
<reportSets>
<reportSet>
<reports>
<report>
report
</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<id>
coverage
</id>
<build>
<plugins>
<plugin>
<groupId>
org.jacoco
</groupId>
<artifactId>
jacoco-maven-plugin
</artifactId>
<version>
0.7.7.201606060606
</version>
<executions>
<execution>
<id>
pre-unit-test
</id>
<goals>
<goal>
prepare-agent
</goal>
</goals>
</execution>
<execution>
<id>
post-test
</id>
<phase>
test
</phase>
<goals>
<goal>
report
</goal>
</goals>
<configuration>
<outputDirectory>
target/report
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<artifactId>
maven-javadoc-plugin
</artifactId>
<configuration>
<additionalparam>
-Xdoclint:none
</additionalparam>
</configuration>
</plugin>
<plugin>
<groupId>
org.jacoco
</groupId>
<artifactId>
jacoco-maven-plugin
</artifactId>
<reportSets>
<reportSet>
<reports>
<report>
report
</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
</profile>
</profiles>
<repositories>
<repository>
...
...
pulsar-broker/src/test/java/com/yahoo/pulsar/broker/admin/NamespacesTest.java
浏览文件 @
47dbfdb4
...
...
@@ -491,16 +491,6 @@ public class NamespacesTest extends MockedPulsarServiceBaseTest {
"test-bundled-namespace-1"
);
assertEquals
(
responseData
,
bundle
);
mockZookKeeper
.
failNow
(
Code
.
SESSIONEXPIRED
);
pulsar
.
getConfigurationCache
().
policiesCache
().
invalidate
(
AdminResource
.
path
(
"policies"
,
this
.
testProperty
,
this
.
testLocalCluster
,
"test-bundled-namespace-1"
));
try
{
namespaces
.
getBundlesData
(
this
.
testProperty
,
this
.
testLocalCluster
,
"test-bundled-namespace-1"
);
fail
(
"should have failed"
);
}
catch
(
RestException
e
)
{
assertEquals
(
e
.
getResponse
().
getStatus
(),
Status
.
INTERNAL_SERVER_ERROR
.
getStatusCode
());
}
}
@Test
...
...
pulsar-broker/src/test/java/com/yahoo/pulsar/broker/service/PersistentTopicE2ETest.java
浏览文件 @
47dbfdb4
...
...
@@ -1024,7 +1024,8 @@ public class PersistentTopicE2ETest extends BrokerTestBase {
assertTrue
(
msgInRate
>
0
);
}
@Test
// TODO: Re-enable once header+payload checksum changes are merged
@Test
(
enabled
=
false
)
public
void
testPayloadCorruptionDetection
()
throws
Exception
{
final
String
topicName
=
"persistent://prop/use/ns-abc/topic1"
;
...
...
pulsar-broker/src/test/java/com/yahoo/pulsar/broker/service/ServerCnxTest.java
浏览文件 @
47dbfdb4
...
...
@@ -32,6 +32,7 @@ import static org.testng.Assert.assertTrue;
import
java.io.IOException
;
import
java.lang.reflect.Field
;
import
java.util.ArrayList
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.CountDownLatch
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -616,15 +617,12 @@ public class ServerCnxTest {
setChannelConnected
();
// Delay the topic creation in a deterministic way
CountDownLatch
successTopicCreationDelayLatch
=
new
CountDownLatch
(
1
);
doAnswer
(
new
Answer
<
Object
>()
{
@Override
public
Object
answer
(
InvocationOnMock
invocationOnMock
)
throws
Throwable
{
successTopicCreationDelayLatch
.
await
();
CompletableFuture
<
Runnable
>
openTopicFuture
=
new
CompletableFuture
<>();
doAnswer
(
invocationOnMock
->
{
openTopicFuture
.
complete
(()
->
{
((
OpenLedgerCallback
)
invocationOnMock
.
getArguments
()[
2
]).
openLedgerComplete
(
ledgerMock
,
null
);
return
null
;
}
})
;
return
null
;
}).
when
(
mlFactoryMock
).
asyncOpen
(
matches
(
".*success.*"
),
any
(
ManagedLedgerConfig
.
class
),
any
(
OpenLedgerCallback
.
class
),
anyObject
());
...
...
@@ -649,7 +647,8 @@ public class ServerCnxTest {
producerName
);
channel
.
writeInbound
(
createProducer2
);
successTopicCreationDelayLatch
.
countDown
();
// Complete the topic opening
openTopicFuture
.
get
().
run
();
// Close succeeds
Object
response
=
getResponse
();
...
...
@@ -749,36 +748,21 @@ public class ServerCnxTest {
channel
.
finish
();
}
@Test
(
timeOut
=
30000
)
@Test
(
timeOut
=
30000
,
invocationCount
=
1
,
skipFailedInvocations
=
true
)
public
void
testCreateProducerBookieTimeout
()
throws
Exception
{
resetChannel
();
setChannelConnected
();
// Delay the topic creation in a deterministic way
CountDownLatch
failedTopicCreationDelayLatch
=
new
CountDownLatch
(
1
);
doAnswer
(
new
Answer
<
Object
>()
{
@Override
public
Object
answer
(
InvocationOnMock
invocationOnMock
)
throws
Throwable
{
failedTopicCreationDelayLatch
.
await
();
CompletableFuture
<
Runnable
>
openFailedTopic
=
new
CompletableFuture
<>();
doAnswer
(
invocationOnMock
->
{
openFailedTopic
.
complete
(()
->
{
((
OpenLedgerCallback
)
invocationOnMock
.
getArguments
()[
2
]).
openLedgerComplete
(
ledgerMock
,
null
);
return
null
;
}
})
;
return
null
;
}).
when
(
mlFactoryMock
).
asyncOpen
(
matches
(
".*fail.*"
),
any
(
ManagedLedgerConfig
.
class
),
any
(
OpenLedgerCallback
.
class
),
anyObject
());
CountDownLatch
topicCreationDelayLatch
=
new
CountDownLatch
(
1
);
doAnswer
(
new
Answer
<
Object
>()
{
@Override
public
Object
answer
(
InvocationOnMock
invocationOnMock
)
throws
Throwable
{
topicCreationDelayLatch
.
await
();
((
OpenLedgerCallback
)
invocationOnMock
.
getArguments
()[
2
]).
openLedgerComplete
(
ledgerMock
,
null
);
return
null
;
}
}).
when
(
mlFactoryMock
).
asyncOpen
(
matches
(
".*success.*"
),
any
(
ManagedLedgerConfig
.
class
),
any
(
OpenLedgerCallback
.
class
),
anyObject
());
// In a create producer timeout from client side we expect to see this sequence of commands :
// 1. create a failure producer which will timeout creation after 100msec
// 2. close producer
...
...
@@ -801,8 +785,8 @@ public class ServerCnxTest {
producerName
);
channel
.
writeInbound
(
createProducer2
);
failedTopicCreationDelayLatch
.
countDown
();
topicCreationDelayLatch
.
countDow
n
();
// Now the topic gets opened
openFailedTopic
.
get
().
ru
n
();
// Close succeeds
Object
response
=
getResponse
();
...
...
@@ -840,17 +824,13 @@ public class ServerCnxTest {
setChannelConnected
();
// Delay the topic creation in a deterministic way
Co
untDownLatch
topicCreationDelayLatch
=
new
CountDownLatch
(
1
);
doAnswer
(
new
Answer
<
Object
>()
{
@Override
public
Object
answer
(
InvocationOnMock
invocationOnMock
)
throws
Throwable
{
topicCreationDelayLatch
.
await
(
);
Co
mpletableFuture
<
Runnable
>
openTopicTask
=
new
CompletableFuture
<>(
);
doAnswer
(
invocationOnMock
->
{
openTopicTask
.
complete
(()
->
{
((
OpenLedgerCallback
)
invocationOnMock
.
getArguments
()[
2
]).
openLedgerComplete
(
ledgerMock
,
null
);
}
);
synchronized
(
ServerCnxTest
.
this
)
{
((
OpenLedgerCallback
)
invocationOnMock
.
getArguments
()[
2
]).
openLedgerComplete
(
ledgerMock
,
null
);
}
return
null
;
}
return
null
;
}).
when
(
mlFactoryMock
).
asyncOpen
(
matches
(
".*success.*"
),
any
(
ManagedLedgerConfig
.
class
),
any
(
OpenLedgerCallback
.
class
),
anyObject
());
...
...
@@ -881,7 +861,7 @@ public class ServerCnxTest {
successSubName
,
1
/* consumer id */
,
5
/* request id */
,
SubType
.
Exclusive
,
"test"
/* consumer name */
);
channel
.
writeInbound
(
subscribe4
);
topicCreationDelayLatch
.
countDow
n
();
openTopicTask
.
get
().
ru
n
();
Object
response
;
...
...
@@ -918,35 +898,22 @@ public class ServerCnxTest {
setChannelConnected
();
// Delay the topic creation in a deterministic way
CountDownLatch
successTopicCreationDelayLatch
=
new
CountDownLatch
(
1
);
doAnswer
(
new
Answer
<
Object
>()
{
@Override
public
Object
answer
(
InvocationOnMock
invocationOnMock
)
throws
Throwable
{
successTopicCreationDelayLatch
.
await
();
CompletableFuture
<
Runnable
>
openTopicSuccess
=
new
CompletableFuture
<>();
doAnswer
(
invocationOnMock
->
{
openTopicSuccess
.
complete
(()
->
{
((
OpenLedgerCallback
)
invocationOnMock
.
getArguments
()[
2
]).
openLedgerComplete
(
ledgerMock
,
null
);
return
null
;
}
})
;
return
null
;
}).
when
(
mlFactoryMock
).
asyncOpen
(
matches
(
".*success.*"
),
any
(
ManagedLedgerConfig
.
class
),
any
(
OpenLedgerCallback
.
class
),
anyObject
());
CountDownLatch
failedTopicCreationDelayLatch
=
new
CountDownLatch
(
1
);
doAnswer
(
new
Answer
<
Object
>()
{
@Override
public
Object
answer
(
InvocationOnMock
invocationOnMock
)
throws
Throwable
{
new
Thread
(()
->
{
try
{
failedTopicCreationDelayLatch
.
await
();
}
catch
(
InterruptedException
e
)
{
}
((
OpenLedgerCallback
)
invocationOnMock
.
getArguments
()[
2
])
.
openLedgerFailed
(
new
ManagedLedgerException
(
"Managed ledger failure"
),
null
);
}).
start
();
return
null
;
}
CompletableFuture
<
Runnable
>
openTopicFail
=
new
CompletableFuture
<>();
doAnswer
(
invocationOnMock
->
{
openTopicFail
.
complete
(()
->
{
((
OpenLedgerCallback
)
invocationOnMock
.
getArguments
()[
2
])
.
openLedgerFailed
(
new
ManagedLedgerException
(
"Managed ledger failure"
),
null
);
});
return
null
;
}).
when
(
mlFactoryMock
).
asyncOpen
(
matches
(
".*fail.*"
),
any
(
ManagedLedgerConfig
.
class
),
any
(
OpenLedgerCallback
.
class
),
anyObject
());
...
...
@@ -969,8 +936,7 @@ public class ServerCnxTest {
successSubName
,
1
/* consumer id */
,
3
/* request id */
,
SubType
.
Exclusive
,
"test"
/* consumer name */
);
channel
.
writeInbound
(
subscribe2
);
successTopicCreationDelayLatch
.
countDown
();
failedTopicCreationDelayLatch
.
countDown
();
openTopicFail
.
get
().
run
();
Object
response
;
...
...
@@ -992,6 +958,8 @@ public class ServerCnxTest {
successSubName
,
1
/* consumer id */
,
4
/* request id */
,
SubType
.
Exclusive
,
"test"
/* consumer name */
);
channel
.
writeInbound
(
subscribe3
);
openTopicSuccess
.
get
().
run
();
// Subscribe succeeds
response
=
getResponse
();
assertEquals
(
response
.
getClass
(),
CommandSuccess
.
class
);
...
...
pulsar-client-tools/src/main/java/com/yahoo/pulsar/client/cli/CmdConsume.java
浏览文件 @
47dbfdb4
...
...
@@ -130,10 +130,11 @@ public class CmdConsume {
RateLimiter
limiter
=
(
this
.
consumeRate
>
0
)
?
RateLimiter
.
create
(
this
.
consumeRate
)
:
null
;
while
(
this
.
numMessagesToConsume
==
0
||
numMessagesConsumed
<
this
.
numMessagesToConsume
)
{
if
(
limiter
!=
null
)
if
(
limiter
!=
null
)
{
limiter
.
acquire
();
}
Message
msg
=
consumer
.
receive
(
20
,
TimeUnit
.
SECONDS
);
Message
msg
=
consumer
.
receive
(
5
,
TimeUnit
.
SECONDS
);
if
(
msg
==
null
)
{
LOG
.
warn
(
"No message to consume after waiting for 20 seconds."
);
}
else
{
...
...
pulsar-client-tools/src/test/java/com/yahoo/pulsar/client/cli/PulsarClientToolTest.java
浏览文件 @
47dbfdb4
...
...
@@ -15,15 +15,12 @@
*/
package
com.yahoo.pulsar.client.cli
;
import
java.io.ByteArrayOutputStream
;
import
java.io.PrintStream
;
import
java.net.MalformedURLException
;
import
java.util.Properties
;
import
java.
lang.InterruptedException
;
import
java.
util.concurrent.CompletableFuture
;
import
java.util.concurrent.ExecutionException
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.Future
;
import
java.util.concurrent.ScheduledExecutorService
;
import
org.testng.Assert
;
import
org.testng.annotations.AfterClass
;
...
...
@@ -31,7 +28,6 @@ import org.testng.annotations.BeforeClass;
import
org.testng.annotations.Test
;
import
com.yahoo.pulsar.broker.service.BrokerTestBase
;
import
com.yahoo.pulsar.client.cli.PulsarClientTool
;
@Test
public
class
PulsarClientToolTest
extends
BrokerTestBase
{
...
...
@@ -56,30 +52,31 @@ public class PulsarClientToolTest extends BrokerTestBase {
String
topicName
=
"persistent://property/ns/topic-scale-ns-0/topic"
;
int
numberOfMessages
=
10
0
;
int
numberOfMessages
=
10
;
ScheduledExecutorService
executor
=
Executors
.
newSingleThreadSchedule
dExecutor
();
ExecutorService
executor
=
Executors
.
newSingleThrea
dExecutor
();
Future
<
Boolean
>
future
=
executor
.
submit
(()
->
{
CompletableFuture
<
Void
>
future
=
new
CompletableFuture
<
Void
>();
executor
.
execute
(()
->
{
PulsarClientTool
pulsarClientToolConsumer
;
try
{
pulsarClientToolConsumer
=
new
PulsarClientTool
(
properties
);
String
[]
args
=
{
"consume"
,
"-t"
,
"Exclusive"
,
"-s"
,
"sub-name"
,
"-n"
,
Integer
.
toString
(
numberOfMessages
),
"--hex"
,
"-r"
,
"10
0
"
,
topicName
};
Integer
.
toString
(
numberOfMessages
),
"--hex"
,
"-r"
,
"10"
,
topicName
};
Assert
.
assertEquals
(
pulsarClientToolConsumer
.
run
(
args
),
0
);
}
catch
(
MalformedURLException
e
)
{
Assert
.
fail
(
"Exception : "
+
e
.
getMessage
());
return
false
;
future
.
complete
(
null
);
}
catch
(
Throwable
t
)
{
future
.
completeExceptionally
(
t
)
;
}
return
true
;
});
PulsarClientTool
pulsarClientToolProducer
=
new
PulsarClientTool
(
properties
);
String
[]
args
=
{
"produce"
,
"--messages"
,
"Have a nice day"
,
"-n"
,
Integer
.
toString
(
numberOfMessages
),
"-r"
,
"20
0
"
,
topicName
};
"20"
,
topicName
};
Assert
.
assertEquals
(
pulsarClientToolProducer
.
run
(
args
),
0
);
Assert
.
assertTrue
(
future
.
get
(),
"Exception occured while running consume task."
);
future
.
get
();
executor
.
shutdown
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录