Commit f4faad6f by Szeberényi Imre

gtest_lite

parent 4ab77d53
......@@ -24,6 +24,7 @@ string1 katalógus:
string2_cpp katalógus:
* Ebben a könyvtárban kell előállítani a String azon változatát, ami már C++ nyelvi
elemeket használ, de még nem használja az OO elemeket/elveket.
elemeket használ, de még nem használja az OO elemeket.
A laborgyakorlat feladatainak részletes leírása [infocpp.iit.bme.hu/labor/02](http://infocpp.iit.bme.hu/labor/02) oldalon olvasható.
A laborgyakorlat feladatainak részletes leírása [git.ik.bme.hu/Prog2/labor_peldak/lab_02](https://git.ik.bme.hu/Prog2/labor_peldak/lab_02) oldalon olvasható.
......@@ -12,13 +12,13 @@
* A C verzióval ellentétben nem csak szemrevételezéssel ellenőrizzük az egyes
* függvények helyességét, hanem a gtest_lite EXPECT_... makróival is.
*
* C változatnál látott szöveges kiírások akkor látszanak, ha a DEBUG azonosító definiált.
* Megjegyzések:
* _1 A C változatnál látott szöveges kiírások csak akkor látszanak, ha a
* DEBUG azonosító (makró) projekt szinten definiált.
*
* _2 Ha a CPORTA azonosító (makró) projekt szinten definiált, akkor a
* gtest_lite tesztek eredménye, csak hiba estén jelenik meg.
*
* Figyelem:
* UTF-8 kódolásban az ékezetes betűk a memóriában több bájtot foglalnak el.
* Ha csak a kommentekben használ ékezetet, akkor nincs teendője.
* Ha adatban, konstansban is, akkor ezt külön kell kezelni.
* Ebben a feladatbab azonban ilyenre nem lesz szükség.
*/
/**
......@@ -31,7 +31,7 @@
* (ld. a labor útmutatójában)
*/
#include <cstring> /// Stringműveletekhez
#include <cstring> /// Sztringműveletekhez
/// malloc, new felüldefiniálásával készített memóriaszivárgás és konzisztencia ellenőrző
#include "memtrace.h" /// a standard headerek után kell lennie
......@@ -45,34 +45,34 @@ using std::endl;
int main() {
TEST(String1, Inic) {
String a; createString(a);
EXPECT_EQ(0u, StringLen(a));
EXPECT_EQ((char const*)(NULL), StringC_str(a));
EXPECT_EQ(0u, StringLen(a)); /// 0 hosszúságúnak kell lennie
EXPECT_EQ((char const*)(NULL), StringC_str(a)); /// null pointert várunk
} END
String a; createString(a, 'x'); /// 'a' létrehozása
TEST(String1, FromChar) {
EXPECT_EQ(1u, StringLen(a));
EXPECT_STREQ("x", StringC_str(a));
printStringDbg(a); /// Ezt kellene látni: [1], x|
EXPECT_EQ(1u, StringLen(a)); /// 1 hosszúságúnak kell lennie
EXPECT_STREQ("x", StringC_str(a)); /// és x-nek kell benne lenni
printStringDbg(a); /// Ezt kellene látni (ld. 1_ megjegyzést): [1], x|
} END
// Ha létezik a createString(String&, const char*) függvény.
#if ELKESZULT >= 1
String b; createString(b, "alma"); /// 'b' létrehozása
TEST(String1, FromCstr) {
EXPECT_EQ(4, StringLen(b));
EXPECT_EQ(4u, StringLen(b)); /// 4 hosszúságúnak kell lennie
EXPECT_STREQ("alma", StringC_str(b));
printStringDbg(b); /// Ezt kellene látni: [4], alma|
printStringDbg(b); /// Ezt kellene látni (ld. 1_ megjegyzést): [4], alma|
} END
#endif
// Ha létezik a createString(String&, const String&) függvény.
#if ELKESZULT >= 2
String c; createString(c, b); /// 'c' létrehozása
String c; createString(c, b); /// 'c' létrehozása
TEST(String1, FromStr) {
EXPECT_EQ(4, StringLen(b));
EXPECT_EQ(4u, StringLen(b));
EXPECT_STREQ("alma", StringC_str(b));
printStringDbg(b); /// Ezt kellene látni: [4], alma|
printStringDbg(b); /// Ezt kellene látni (ld. 1_ megjegyzést): [4], alma|
} END
#endif
......@@ -83,7 +83,7 @@ int main() {
EXPECT_NO_THROW(ch = charAtString(b, 3));
EXPECT_EQ('a', ch);
#ifdef DEBUG
cout << charAtString(b, 3) << endl; /// Ezt kellene látni: a
cout << charAtString(b, 3) << endl; /// Ezt kellene látni (ld. 1_ megjegyzést): a
#endif
} END
......@@ -100,9 +100,9 @@ int main() {
#if ELKESZULT >= 4
String d = addString(a, b); /// Összefűzzük a két stringet egy újba
TEST(String1, AddStr2Str1) {
EXPECT_EQ(5, StringLen(d));
EXPECT_EQ(5u, StringLen(d));
EXPECT_STREQ("xalma", StringC_str(d));
printStringDbg(d); /// Ezt kellene látni: [5], xalma|
printStringDbg(d); /// Ezt kellene látni (ld. 1_ megjegyzést): [5], xalma|
} END
#endif
......@@ -110,21 +110,21 @@ int main() {
#if ELKESZULT >= 5
String e = addString(b, c);
TEST(String1, AddStr2Str2) {
EXPECT_EQ(8, StringLen(e));
EXPECT_EQ(8u, StringLen(e));
EXPECT_STREQ("almaalma", StringC_str(e));
printStringDbg(e); /// Ezt kellene látni: [8], almaalma|
printStringDbg(e); /// Ezt kellene látni (ld. 1_ megjegyzést): [8], almaalma|
} END
//
disposeString(e); /// e-t másra akarjuk használni, felszabadítjuk
e = addString(d, 'A');
TEST(String1, AddStr2Str2) {
EXPECT_EQ(6, StringLen(e));
EXPECT_EQ(6u, StringLen(e));
EXPECT_STREQ("xalmaA", StringC_str(e));
printStringDbg(e); /// Ezt kellene látni: [6], xalmaA|
printStringDbg(e); /// Ezt kellene látni (ld. 1_ megjegyzést): [6], xalmaA|
} END
#endif
// Attól függően, hogy mi keletkezett, fel is kell azokat szabadítani
// Attól függően, hogy mi keletkezett, fel kell szabadítani a lefoglalt területeket
#if ELKESZULT >= 5
disposeString(e);
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment