提交 31515b8c 编写于 作者: F Frankie Wu

fix some of test failures

上级 e9d14670
......@@ -8,16 +8,16 @@
"types": {
"URL": {
"id": "URL",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html",
"totalCount": 11,
"failCount": 0,
"failPercent": "0.00",
"min": 0.0,
"max": 194.0,
"avg": "47.1",
"sum": 518.0,
"sum2": 73942.0,
"sum": "518.0",
"sum2": "73942.0",
"std": "67.1",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html",
"names": {
"home": {
"id": "home",
......@@ -27,10 +27,36 @@
"min": 175.0,
"max": 175.0,
"avg": "175.0",
"sum": 175.0,
"sum2": 30625.0,
"sum": "175.0",
"sum2": "30625.0",
"std": "0.0",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html"
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html",
"ranges": [
{
"value": 5,
"count": 123,
"sum": 123456.0,
"avg": "22.2",
"fails": 3
},
{
"value": 10,
"count": 123,
"sum": 12457.0,
"avg": "222.0",
"fails": 3
}
],
"durations": [
{
"value": 128,
"count": 34
},
{
"value": 256,
"count": 12
}
]
},
"service": {
"id": "service",
......@@ -40,10 +66,11 @@
"min": 1.0,
"max": 58.0,
"avg": "13.0",
"sum": 104.0,
"sum2": 3952.0,
"sum": "104.0",
"sum2": "3952.0",
"std": "18.0",
"successMessageUrl": "20120216/23/Cat/b10bdefb-1eca-45e1-a9c3-52367078b5a2.html"
"successMessageUrl": "20120216/23/Cat/b10bdefb-1eca-45e1-a9c3-52367078b5a2.html",
"failMessageUrl": "20120216/23/Cat/b10bdefb-1eca-45e1-a9c3-52367078b5a2.html"
},
"t": {
"id": "t",
......@@ -53,8 +80,8 @@
"min": 193.0,
"max": 193.0,
"avg": "193.0",
"sum": 193.0,
"sum2": 37249.0,
"sum": "193.0",
"sum2": "37249.0",
"std": "0.0",
"successMessageUrl": "20120216/23/Cat/8e7c91a0-7549-4b13-b43b-252b2a6ef4bb.html"
},
......@@ -66,8 +93,8 @@
"min": 46.0,
"max": 46.0,
"avg": "46.0",
"sum": 46.0,
"sum2": 2116.0,
"sum": "46.0",
"sum2": "2116.0",
"std": "0.0",
"successMessageUrl": "20120216/23/Cat/2029c32e-b692-4e43-8eaf-96b8d6c846a2.html"
}
......@@ -75,16 +102,16 @@
},
"MVC": {
"id": "MVC",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html",
"totalCount": 33,
"failCount": 0,
"failPercent": "0.00",
"min": 0.0,
"max": 191.0,
"avg": "15.1",
"sum": 499.0,
"sum2": 68377.0,
"sum": "499.0",
"sum2": "68377.0",
"std": "42.9",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html",
"names": {
"InboundPhase": {
"id": "InboundPhase",
......@@ -94,8 +121,8 @@
"min": 0.0,
"max": 17.0,
"avg": "1.5",
"sum": 17.0,
"sum2": 289.0,
"sum": "17.0",
"sum2": "289.0",
"std": "4.9",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html"
},
......@@ -107,8 +134,8 @@
"min": 0.0,
"max": 4.9E-324,
"avg": "0.0",
"sum": 0.0,
"sum2": 0.0,
"sum": "0.0",
"sum2": "0.0",
"std": "0.0",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html"
},
......@@ -120,8 +147,8 @@
"min": 1.0,
"max": 191.0,
"avg": "43.8",
"sum": 482.0,
"sum2": 68088.0,
"sum": "482.0",
"sum2": "68088.0",
"std": "65.3",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html"
}
......@@ -129,16 +156,16 @@
},
"NEW1": {
"id": "NEW1",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html",
"totalCount": 33,
"failCount": 0,
"failPercent": "0.00",
"min": 0.0,
"max": 191.0,
"avg": "15.1",
"sum": 499.0,
"sum2": 68377.0,
"sum": "499.0",
"sum2": "68377.0",
"std": "42.9",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html",
"names": {
"InboundPhase": {
"id": "InboundPhase",
......@@ -148,8 +175,8 @@
"min": 0.0,
"max": 17.0,
"avg": "1.5",
"sum": 17.0,
"sum2": 289.0,
"sum": "17.0",
"sum2": "289.0",
"std": "4.9",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html"
},
......@@ -161,8 +188,8 @@
"min": 0.0,
"max": 4.9E-324,
"avg": "0.0",
"sum": 0.0,
"sum2": 0.0,
"sum": "0.0",
"sum2": "0.0",
"std": "0.0",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html"
},
......@@ -174,8 +201,8 @@
"min": 1.0,
"max": 191.0,
"avg": "43.8",
"sum": 482.0,
"sum2": 68088.0,
"sum": "482.0",
"sum2": "68088.0",
"std": "65.3",
"successMessageUrl": "20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html"
}
......
<transaction-report domain="Cat" startTime="2012-02-16 23:00:00" endTime="2012-02-16 23:59:00">
<domain>Cat</domain>
<type id="URL" totalCount="11" failCount="0" failPercent="0.00" min="0.0" max="194.0" avg="47.1" sum="518.0" sum2="73942.0" std="67.1">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
<name id="home" totalCount="1" failCount="0" failPercent="0.00" min="175.0" max="175.0" avg="175.0" sum="175.0" sum2="30625.0" std="0.0">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
<range value="5" count="123" sum="123456" avg="22.2" fails="3"/>
<range value="10" count="123" sum="12457" avg="222" fails="3"/>
<duration value="128" count="34"/>
<duration value="256" count="12"/>
<range value="5" count="123" sum="123456.0" avg="22.2" fails="3"/>
<range value="10" count="123" sum="12457.0" avg="222.0" fails="3"/>
<duration value="128" count="34"/>
<duration value="256" count="12"/>
</name>
<name id="service" totalCount="8" failCount="0" failPercent="0.00" min="1.0" max="58.0" avg="13.0" sum="104.0" sum2="3952.0" std="18.0">
<failMessageUrl>20120216/23/Cat/b10bdefb-1eca-45e1-a9c3-52367078b5a2.html</failMessageUrl>
<successMessageUrl>20120216/23/Cat/b10bdefb-1eca-45e1-a9c3-52367078b5a2.html</successMessageUrl>
<failMessageUrl>20120216/23/Cat/b10bdefb-1eca-45e1-a9c3-52367078b5a2.html</failMessageUrl>
</name>
<name id="t" totalCount="1" failCount="0" failPercent="0.00" min="193.0" max="193.0" avg="193.0" sum="193.0" sum2="37249.0" std="0.0">
<successMessageUrl>20120216/23/Cat/8e7c91a0-7549-4b13-b43b-252b2a6ef4bb.html</successMessageUrl>
......@@ -18,9 +19,9 @@
<name id="ip" totalCount="1" failCount="0" failPercent="0.00" min="46.0" max="46.0" avg="46.0" sum="46.0" sum2="2116.0" std="0.0">
<successMessageUrl>20120216/23/Cat/2029c32e-b692-4e43-8eaf-96b8d6c846a2.html</successMessageUrl>
</name>
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
</type>
<type id="MVC" totalCount="33" failCount="0" failPercent="0.00" min="0.0" max="191.0" avg="15.1" sum="499.0" sum2="68377.0" std="42.9">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
<name id="InboundPhase" totalCount="11" failCount="0" failPercent="0.00" min="0.0" max="17.0" avg="1.5" sum="17.0" sum2="289.0" std="4.9">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
</name>
......@@ -30,9 +31,9 @@
<name id="OutboundPhase" totalCount="11" failCount="0" failPercent="0.00" min="1.0" max="191.0" avg="43.8" sum="482.0" sum2="68088.0" std="65.3">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
</name>
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
</type>
<type id="NEW1" totalCount="33" failCount="0" failPercent="0.00" min="0.0" max="191.0" avg="15.1" sum="499.0" sum2="68377.0" std="42.9">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
<name id="InboundPhase" totalCount="11" failCount="0" failPercent="0.00" min="0.0" max="17.0" avg="1.5" sum="17.0" sum2="289.0" std="4.9">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
</name>
......@@ -42,6 +43,5 @@
<name id="OutboundPhase" totalCount="11" failCount="0" failPercent="0.00" min="1.0" max="191.0" avg="43.8" sum="482.0" sum2="68088.0" std="65.3">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
</name>
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html</successMessageUrl>
</type>
</transaction-report>
......@@ -37,6 +37,7 @@ public class MessageProducerTest extends CatTestCase {
t.complete();
}
// please stop CAT server when you run this test case
Assert.assertEquals("One message should be in the queue.", 1, queue.size());
MessageTree tree = queue.peek();
......
......@@ -8,6 +8,8 @@ import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import com.dianping.cat.message.Event;
import com.dianping.cat.message.Heartbeat;
......@@ -16,17 +18,18 @@ import com.dianping.cat.message.Transaction;
import com.dianping.cat.message.internal.DefaultEvent;
import com.dianping.cat.message.internal.DefaultHeartbeat;
import com.dianping.cat.message.internal.DefaultTransaction;
import com.dianping.cat.message.spi.MessageCodec;
import com.dianping.cat.message.spi.MessageTree;
import com.dianping.cat.message.spi.internal.DefaultMessagePathBuilder;
import com.dianping.cat.message.spi.internal.DefaultMessageTree;
import com.site.lookup.ComponentTestCase;
public class HtmlMessageCodecTest {
private void check(Message message, String expected) {
HtmlMessageCodec codec = new HtmlMessageCodec();
@RunWith(JUnit4.class)
public class HtmlMessageCodecTest extends ComponentTestCase {
private void check(Message message, String expected) throws Exception {
HtmlMessageCodec codec = (HtmlMessageCodec) lookup(MessageCodec.class, "html");
ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
codec.setBufferWriter(new HtmlEncodingBufferWriter());
codec.setMessagePathBuilder(new DefaultMessagePathBuilder());
codec.encodeMessage(message, buf, 0, null);
String actual = buf.toString(Charset.forName("utf-8"));
......@@ -92,7 +95,7 @@ public class HtmlMessageCodecTest {
}
@Test
public void testEvent() {
public void testEvent() throws Exception {
long timestamp = 1325489621987L;
Event event = newEvent("type", "name", timestamp, "0", "here is the data.");
......@@ -100,7 +103,7 @@ public class HtmlMessageCodecTest {
}
@Test
public void testEventForRawData() {
public void testEventForRawData() throws Exception {
long timestamp = 1325489621987L;
String trace = "java.lang.Exception\n"
+ "\tat com.dianping.cat.message.spi.codec.PlainTextMessageCodecTest.testEventForException(PlainTextMessageCodecTest.java:112)\n"
......@@ -115,7 +118,7 @@ public class HtmlMessageCodecTest {
}
@Test
public void testHeartbeat() {
public void testHeartbeat() throws Exception {
long timestamp = 1325489621987L;
Heartbeat heartbeat = newHeartbeat("type", "name", timestamp, "0", "here is the data.");
......@@ -144,7 +147,7 @@ public class HtmlMessageCodecTest {
}
@Test
public void testTransactionNormal() {
public void testTransactionNormal() throws Exception {
long timestamp = 1325489621987L;
Transaction root = newTransaction("URL", "Review", timestamp, "0", 100, "/review/2468");
......@@ -169,7 +172,7 @@ public class HtmlMessageCodecTest {
}
@Test
public void testTransactionWithRemoteCall() {
public void testTransactionWithRemoteCall() throws Exception {
long timestamp = 1325489621987L;
Transaction root = newTransaction("URL", "Review", timestamp, "0", 100, "/review/2468");
......@@ -198,7 +201,7 @@ public class HtmlMessageCodecTest {
}
@Test
public void testTransactionSimple() {
public void testTransactionSimple() throws Exception {
long timestamp = 1325489621987L;
Transaction transaction = newTransaction("type", "name", timestamp, "0", 10, "here is the data.");
......
......@@ -137,7 +137,7 @@ public class Handler implements PageHandler<Context>, Initializable {
return;
}
String graph1 = m_builder.build(new DurationPayload("Transaction Duration", "Duration (ms)", "Count", name));
String graph1 = m_builder.build(new DurationPayload("Duration Distribution", "Duration (ms)", "Count", name));
String graph2 = m_builder.build(new HitPayload("Hits Over Time", "Time (min)", "Count", name));
String graph3 = m_builder.build(new AverageTimePayload("Average Duration Over Time", "Time (min)",
"Average Duration (ms)", name));
......
......@@ -51,6 +51,13 @@
<tag-class>org.unidal.webres.taglib.basic.UseCssTagHandler</tag-class>
<body-content>JSP</body-content>
<attribute>
<description><![CDATA[Set the css value with EL or a css ref.]]></description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description><![CDATA[Identify whether the link URL is secure or not.]]></description>
<name>secure</name>
<required>false</required>
......@@ -72,13 +79,6 @@
<type>java.lang.String</type>
</attribute>
<attribute>
<description><![CDATA[Set the css value with EL or a css ref.]]></description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description><![CDATA[Target placement for this css resource to render]]></description>
<name>target</name>
<required>false</required>
......@@ -114,18 +114,18 @@
<tag-class>org.unidal.webres.taglib.basic.SetTagHandler</tag-class>
<body-content>JSP</body-content>
<attribute>
<description><![CDATA[The name.]]></description>
<name>id</name>
<description><![CDATA[The value]]></description>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description><![CDATA[The value]]></description>
<name>value</name>
<description><![CDATA[The name.]]></description>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
<type>java.lang.String</type>
</attribute>
<dynamic-attributes>false</dynamic-attributes>
</tag>
......@@ -135,6 +135,13 @@
<tag-class>org.unidal.webres.taglib.basic.UseJsTagHandler</tag-class>
<body-content>JSP</body-content>
<attribute>
<description><![CDATA[Set the js value with EL or a js ref.]]></description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description><![CDATA[Identify whether the link URL is secure or not.]]></description>
<name>secure</name>
<required>false</required>
......@@ -156,13 +163,6 @@
<type>java.lang.String</type>
</attribute>
<attribute>
<description><![CDATA[Set the js value with EL or a js ref.]]></description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description><![CDATA[Target placement for this js resource to render]]></description>
<name>target</name>
<required>false</required>
......@@ -177,6 +177,13 @@
<tag-class>org.unidal.webres.taglib.basic.LinkTagHandler</tag-class>
<body-content>JSP</body-content>
<attribute>
<description><![CDATA[The value for link, could be a expression or a link ref.]]></description>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description><![CDATA[Identify whether the link URL is secure or not.]]></description>
<name>secure</name>
<required>false</required>
......@@ -190,13 +197,6 @@
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<attribute>
<description><![CDATA[The value for link, could be a expression or a link ref.]]></description>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
</attribute>
<dynamic-attributes>true</dynamic-attributes>
</tag>
<tag>
......@@ -205,6 +205,13 @@
<tag-class>org.unidal.webres.taglib.basic.ImageTagHandler</tag-class>
<body-content>JSP</body-content>
<attribute>
<description><![CDATA[The value for image, could be a expression or a image path.]]></description>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
</attribute>
<attribute>
<description><![CDATA[Identify whether the image URL is secure or not.]]></description>
<name>secure</name>
<required>false</required>
......@@ -225,13 +232,6 @@
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<attribute>
<description><![CDATA[The value for image, could be a expression or a image path.]]></description>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
</attribute>
<dynamic-attributes>true</dynamic-attributes>
</tag>
<tag>
......
......@@ -11,6 +11,8 @@ com.dianping.cat.message.AllTests.class,
com.dianping.cat.consumer.AllTests.class,
com.dianping.cat.AllTests.class,
})
public class AllAllTests {
......
<transaction-report domain="Cat" startTime="2012-02-16 23:00:00" endTime="2012-02-16 23:59:00">
<domain>Cat</domain>
<type id="URL" totalCount="22" failCount="4" failPercent="18.18" min="0.0" max="194.0" avg="47.1" sum="1036.0" sum2="147884.0" std="67.1">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
<name id="home" totalCount="2" failCount="0" failPercent="0.00" min="175.0" max="175.0" avg="175.0" sum="350.0" sum2="61250.0" std="0.0">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
......@@ -17,10 +19,10 @@
<successMessageUrl>20120216/23/Cat/2029c32e-b692-4e43-8eaf-96b8d6c846a2.html
</successMessageUrl>
</name>
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
</type>
<type id="MVC" totalCount="66" failCount="11" failPercent="16.67" min="0.0" max="191.0" avg="15.1" sum="998.0" sum2="136754.0" std="42.9">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
<name id="InboundPhase" totalCount="22" failCount="0" failPercent="0.00" min="0.0" max="17.0" avg="1.5" sum="34.0" sum2="578.0" std="4.9">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
......@@ -33,10 +35,10 @@
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
</name>
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
</type>
<type id="OLD1" totalCount="33" failCount="0" failPercent="0.00" min="0.0" max="191.0" avg="15.1" sum="499.0" sum2="68377.0" std="42.9">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
<name id="InboundPhase" totalCount="11" failCount="0" failPercent="0.00" min="0.0" max="17.0" avg="1.5" sum="17.0" sum2="289.0" std="4.9">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
......@@ -49,10 +51,10 @@
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
</name>
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
</type>
<type id="NEW1" totalCount="33" failCount="0" failPercent="0.00" min="0.0" max="191.0" avg="15.1" sum="499.0" sum2="68377.0" std="42.9">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
<name id="InboundPhase" totalCount="11" failCount="0" failPercent="0.00" min="0.0" max="17.0" avg="1.5" sum="17.0" sum2="289.0" std="4.9">
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
......@@ -65,7 +67,5 @@
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
</name>
<successMessageUrl>20120216/23/Cat/1168a02c-664b-440c-9ef4-a87bac4d9cb1.html
</successMessageUrl>
</type>
</transaction-report>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册