summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-12-23 23:59:56 +0300
committerAndrei Karas <akaras@inbox.ru>2014-12-24 00:57:20 +0300
commitca1e09857ac3109a7444bc6cdcc92055fca6f27c (patch)
tree08e8375ff49549905b5384f5f9378003d5225714
parent999cd8f31c6c2d01ffb216d95ea19e8a50a72234 (diff)
downloadmplint-ca1e09857ac3109a7444bc6cdcc92055fca6f27c.tar.gz
mplint-ca1e09857ac3109a7444bc6cdcc92055fca6f27c.tar.bz2
mplint-ca1e09857ac3109a7444bc6cdcc92055fca6f27c.tar.xz
mplint-ca1e09857ac3109a7444bc6cdcc92055fca6f27c.zip
Add rule for check wrong packet naming.
-rw-r--r--src/Makefile.am1
-rw-r--r--src/rules/packet.cpp38
-rw-r--r--tests/testreport.txt1
-rw-r--r--tests/testsrc/bad/packet.cpp26
-rw-r--r--tests/testsrc/good/packet.cpp26
5 files changed, 92 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 4cdfdfb..05072fe 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -24,6 +24,7 @@ mplint_SOURCES = \
rules/formatting.cpp \
rules/include.cpp \
rules/license.cpp \
+ rules/packet.cpp \
rules/po.cpp \
rules/xml.cpp
diff --git a/src/rules/packet.cpp b/src/rules/packet.cpp
new file mode 100644
index 0000000..003f28b
--- /dev/null
+++ b/src/rules/packet.cpp
@@ -0,0 +1,38 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2014 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "template.hpp"
+
+registerRuleExt(packet, "012", "(.+)[.](cpp)")
+
+startRule(packet)
+{
+}
+
+endRule(packet)
+{
+}
+
+parseLineRule(packet)
+{
+ if (data.find("createOutPacket(SMSG") != std::string::npos)
+ print("Wrong output packet creation. Must be 'createOutPacket(CMSG...'");
+}
+
diff --git a/tests/testreport.txt b/tests/testreport.txt
index 5689407..0d13bed 100644
--- a/tests/testreport.txt
+++ b/tests/testreport.txt
@@ -42,3 +42,4 @@
[testsrc/bad/license6.cpp:5]: V005: Missing "This file is part of The ManaPlus Client."
[testsrc/bad/license6.h:5]: V005: Missing "This file is part of The ManaPlus Client."
[testsrc/bad/uk.po:2257]: V010: Wrong character at end of translation line.
+[testsrc/good/packet.cpp:25]: V012: Wrong output packet creation. Must be 'createOutPacket(SMSG...'
diff --git a/tests/testsrc/bad/packet.cpp b/tests/testsrc/bad/packet.cpp
new file mode 100644
index 0000000..0fa81ae
--- /dev/null
+++ b/tests/testsrc/bad/packet.cpp
@@ -0,0 +1,26 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2014 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "debug.h"
+
+void func()
+{
+ createOutPacket(SMSG_MERCENARY_ACTION);
+}
diff --git a/tests/testsrc/good/packet.cpp b/tests/testsrc/good/packet.cpp
new file mode 100644
index 0000000..4e28cc0
--- /dev/null
+++ b/tests/testsrc/good/packet.cpp
@@ -0,0 +1,26 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2014 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "debug.h"
+
+void func()
+{
+ createOutPacket(CMSG_MERCENARY_ACTION);
+}