return ret;
 }
 
+#define EXPECT_PTREQ(cond, expr, cmp)                          \
+       do { if (!cond) pad_spc(llen, 64, "[SKIPPED]\n"); else ret += expect_ptreq(expr, llen, cmp); } while (0)
+
+static int expect_ptreq(const void *expr, int llen, const void *cmp)
+{
+       int ret = 0;
+
+       llen += printf(" = <%p> ", expr);
+       if (expr != cmp) {
+               ret = 1;
+               llen += pad_spc(llen, 64, "[FAIL]\n");
+       } else {
+               llen += pad_spc(llen, 64, " [OK]\n");
+       }
+       return ret;
+}
+
+#define EXPECT_PTRNE(cond, expr, cmp)                          \
+       do { if (!cond) pad_spc(llen, 64, "[SKIPPED]\n"); else ret += expect_ptrne(expr, llen, cmp); } while (0)
+
+static int expect_ptrne(const void *expr, int llen, const void *cmp)
+{
+       int ret = 0;
+
+       llen += printf(" = <%p> ", expr);
+       if (expr == cmp) {
+               ret = 1;
+               llen += pad_spc(llen, 64, "[FAIL]\n");
+       } else {
+               llen += pad_spc(llen, 64, " [OK]\n");
+       }
+       return ret;
+}
+
+#define EXPECT_PTRER2(cond, expr, expret, experr1, experr2)            \
+       do { if (!cond) pad_spc(llen, 64, "[SKIPPED]\n"); else ret += expect_ptrerr2(expr, expret, experr1, experr2, llen); } while (0)
+
+#define EXPECT_PTRER(cond, expr, expret, experr)                       \
+       EXPECT_PTRER2(cond, expr, expret, experr, 0)
+
+static int expect_ptrerr2(const void *expr, const void *expret, int experr1, int experr2, int llen)
+{
+       int ret = 0;
+       int _errno = errno;
+
+       llen += printf(" = <%p> %s ", expr, errorname(_errno));
+       if (expr != expret || (_errno != experr1 && _errno != experr2)) {
+               ret = 1;
+               if (experr2 == 0)
+                       llen += printf(" != (<%p> %s) ", expret, errorname(experr1));
+               else
+                       llen += printf(" != (<%p> %s %s) ", expret, errorname(experr1), errorname(experr2));
+               llen += pad_spc(llen, 64, "[FAIL]\n");
+       } else {
+               llen += pad_spc(llen, 64, " [OK]\n");
+       }
+       return ret;
+}
 
 #define EXPECT_STRZR(cond, expr)                               \
        do { if (!cond) pad_spc(llen, 64, "[SKIPPED]\n"); else ret += expect_strzr(expr, llen); } while (0)