Index: uspace/lib/cpp/include/internal/test/tests.hpp
===================================================================
--- uspace/lib/cpp/include/internal/test/tests.hpp	(revision dc0fff11ad5efa94abcdc779ba11d72775323ca6)
+++ uspace/lib/cpp/include/internal/test/tests.hpp	(revision 9315761b1d19fc3fd4d317908974f1cd0d8ed4b4)
@@ -67,4 +67,5 @@
         private:
             void test_construction_and_assignment();
+            void test_append();
     };
 }
Index: uspace/lib/cpp/src/internal/test/string.cpp
===================================================================
--- uspace/lib/cpp/src/internal/test/string.cpp	(revision dc0fff11ad5efa94abcdc779ba11d72775323ca6)
+++ uspace/lib/cpp/src/internal/test/string.cpp	(revision 9315761b1d19fc3fd4d317908974f1cd0d8ed4b4)
@@ -37,4 +37,5 @@
     {
         test_construction_and_assignment();
+        test_append();
 
         return true;
@@ -81,5 +82,5 @@
         std::string str4{};
         test_eq(
-            "default constrcutor empty",
+            "default constructor empty",
             str4.size(), 0ul
         );
@@ -87,5 +88,5 @@
         str4.assign(str3, 2ul, 2ul);
         test_eq(
-            "assign substring to empty string",
+            "assign substring to an empty string",
             str4.begin(), str4.end(),
             str3.begin() + 2, str3.begin() + 4
@@ -99,3 +100,57 @@
         );
     }
+
+    void string_test::test_append()
+    {
+        std::string check{"hello, world"};
+
+        std::string str1{"hello, "};
+        str1.append("world");
+        test_eq(
+            "append cstring",
+            str1.begin(), str1.end(),
+            check.begin(), check.end()
+        );
+
+        std::string str2{"hello, "};
+        str2.append(std::string{"world"});
+        test_eq(
+            "append rvalue string",
+            str2.begin(), str2.end(),
+            check.begin(), check.end()
+        );
+
+        std::string str3{"hello, "};
+        std::string apendee{"world"};
+        str3.append(apendee);
+        test_eq(
+            "append lvalue string",
+            str3.begin(), str3.end(),
+            check.begin(), check.end()
+        );
+
+        std::string str4{"hello, "};
+        str4.append(apendee.begin(), apendee.end());
+        test_eq(
+            "append iterator range",
+            str4.begin(), str4.end(),
+            check.begin(), check.end()
+        );
+
+        std::string str5{"hello, "};
+        str5.append({'w', 'o', 'r', 'l', 'd', '\0'});
+        test_eq(
+            "append initializer list",
+            str5.begin(), str5.end(),
+            check.begin(), check.end()
+        );
+
+        std::string str6{"hello, "};
+        str6 += "world";
+        test_eq(
+            "append using +=",
+            str6.begin(), str6.end(),
+            check.begin(), check.end()
+        );
+    }
 }
