Skip to contentSkip to conversation

Makefile: libcheck now requires to link subunit

PATCH In review Aníbal Limón 1 participant 4 messages Dec 7, 2017 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/3 Makefile: libcheck now requires to link subunit

From: Aníbal Limón <[email protected]>

---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Makefile +1 -1
index 434b89f..1bde7be 100644
@@ -22,7 +22,7 @@ TEST_SOURCES=tests/main.c tests/ptest_list.c tests/utils.c $(BASE_SOURCES)
 TEST_OBJECTS=$(TEST_SOURCES:.c=.o)
 TEST_EXECUTABLE=ptest-runner-test
 TEST_LDFLAGS=-lm -lrt -lpthread
-TEST_LIBSTATIC=-lcheck
+TEST_LIBSTATIC=-lcheck -lsubunit
 
 TEST_DATA=$(shell echo `pwd`/tests/data)
 
Signature · 1 line
2.11.0
#1 lore raw

PATCH v2 2/3 Add support to avoid load/run twice a run_ptest script

From: Aníbal Limón <[email protected]>

In some ptest packages exists symlink in the ptest directory causing to load/run twice the same ptest,

For example in perl5:

/usr/lib/perl -> /usr/lib/perl5

---
 ptest_list.c       | 40 ++++++++++++++++++++++++++++++++++++++++
 ptest_list.h       |  3 +++
 tests/data/python3 |  1 +
 tests/utils.c      |  1 +
 utils.c            |  6 ++++++
 5 files changed, 51 insertions(+)
 create mode 120000 tests/data/python3
ptest_list.c +40 -0
index 2e1aa30..3e393d5 100644
@@ -110,6 +110,46 @@ ptest_list_search(struct ptest_list *head, char *ptest)
 	return q;
 }
 
+
+struct ptest_list *
+ptest_list_search_by_file(struct ptest_list *head, char *run_ptest, struct stat st_buf)
+{
+	struct ptest_list *q = NULL;
+	struct ptest_list *p;
+	struct stat st_buf_p;
+
+	VALIDATE_PTR_RNULL(head);
+	VALIDATE_PTR_RNULL(run_ptest);
+
+	for (p = head; p != NULL; p = p->next) {
+		if (p->ptest == NULL) 
+			continue;
+
+		if (stat(p->run_ptest, &st_buf_p) == -1)
+			continue;
+
+		if (strcmp(p->run_ptest, run_ptest) == 0) {
+			q = p;
+			break;
+		}
+
+		/* *
+		 * In some ptest packages exists symlink in the ptest directory
+		 * causing to load/run twice the same ptest, 
+		 *
+		 * For example in perl5:
+		 * /usr/lib/perl -> /usr/lib/perl5
+		 * */
+		if (st_buf.st_dev == st_buf_p.st_dev &&
+		    st_buf.st_ino == st_buf_p.st_ino) {
+			q = p;
+			break;
+		}
+	}
+
+	return q;
+}
+
 struct ptest_list *
 ptest_list_add(struct ptest_list *head, char *ptest, char *run_ptest)
 {
ptest_list.h +3 -0
index 8b39485..03d7539 100644
@@ -28,6 +28,8 @@
 #define PTEST_LIST_ITERATE_START(head, p) for (p = head->next; p != NULL; p = p->next) { 
 #define PTEST_LIST_ITERATE_END }
 
+#include <sys/stat.h>
+
 struct ptest_list {
 	char *ptest;
 	char *run_ptest;
@@ -42,6 +44,7 @@ extern int ptest_list_free_all(struct ptest_list *);
 
 extern int ptest_list_length(struct ptest_list *);
 extern struct ptest_list *ptest_list_search(struct ptest_list *, char *);
+extern struct ptest_list *ptest_list_search_by_file(struct ptest_list *, char *, struct stat);
 extern struct ptest_list *ptest_list_add(struct ptest_list *, char *, char *);
 extern struct ptest_list *ptest_list_remove(struct ptest_list *, char *, int);
 
tests/data/python3 new file +1 -0
new file mode 120000
index 0000000..d8654aa
@@ -0,0 +1 @@
+python
\ No newline at end of file
tests/utils.c +1 -0
index ecf3e8a..cf09379 100644
@@ -48,6 +48,7 @@ static int ptests_found_length = 6;
 static char *ptests_not_found[] = {
 	"busybox",
 	"perl",
+	"python3",
 	NULL,
 };
 
utils.c +6 -0
index 933eced..ed2eff7 100644
@@ -143,6 +143,12 @@ get_available_ptests(const char *dir)
 				continue;
 			}
 
+			if (ptest_list_search_by_file(head, run_ptest, st_buf)) {
+				free(run_ptest);
+				free(d_name);
+				continue;
+			}
+
 			struct ptest_list *p = ptest_list_add(head,
 				d_name, run_ptest);
 			CHECK_ALLOCATION(p, sizeof(struct ptest_list *), 0);
Signature · 1 line
2.11.0
#2 lore raw

Re: [ptest-runner][PATCHv2 2/3] Add support to avoid load/run twice a run_ptest script

tests/data/python3

Quoted 104 lines · Aníbal Limón

From: Aníbal Limón <[email protected]>

In some ptest packages exists symlink in the ptest directory causing to load/run twice the same ptest,

For example in perl5:

/usr/lib/perl -> /usr/lib/perl5

---
 ptest_list.c       | 40 ++++++++++++++++++++++++++++++++++++++++
 ptest_list.h       |  3 +++
 tests/data/python3 |  1 +
 tests/utils.c      |  1 +
 utils.c            |  6 ++++++
 5 files changed, 51 insertions(+)
 create mode 120000 tests/data/python3
ptest_list.c +25 -0
index 2e1aa30..3e393d5 100644
@@ -110,6 +110,46 @@ ptest_list_search(struct ptest_list *head, char
 *ptest)
        return q;
 }
 
+
+struct ptest_list *
+ptest_list_search_by_file(struct ptest_list *head, char *run_ptest,
 struct stat st_buf)
+{
+       struct ptest_list *q = NULL;
+       struct ptest_list *p;
+       struct stat st_buf_p;
+
+       VALIDATE_PTR_RNULL(head);
+       VALIDATE_PTR_RNULL(run_ptest);
+
+       for (p = head; p != NULL; p = p->next) {
+               if (p->ptest == NULL)
+                       continue;
+
+               if (stat(p->run_ptest, &st_buf_p) == -1)
+                       continue;
+
+               if (strcmp(p->run_ptest, run_ptest) == 0) {
+                       q = p;
+                       break;
+               }
+
+               /* *
+                * In some ptest packages exists symlink in the ptest

directory

ptest_list.c +15 -0
+                * causing to load/run twice the same ptest,
+                *
+                * For example in perl5:
+                * /usr/lib/perl -> /usr/lib/perl5
+                * */
+               if (st_buf.st_dev == st_buf_p.st_dev &&
+                   st_buf.st_ino == st_buf_p.st_ino) {
+                       q = p;
+                       break;
+               }
+       }
+
+       return q;
+}
+
 struct ptest_list *
 ptest_list_add(struct ptest_list *head, char *ptest, char *run_ptest)
 {
ptest_list.h +2 -0
index 8b39485..03d7539 100644
@@ -28,6 +28,8 @@
 #define PTEST_LIST_ITERATE_START(head, p) for (p = head->next; p != NULL;
 p = p->next) {
 #define PTEST_LIST_ITERATE_END }
 
+#include <sys/stat.h>
+
 struct ptest_list {
        char *ptest;
        char *run_ptest;
ptest_list.h +1 -0
@@ -42,6 +44,7 @@ extern int ptest_list_free_all(struct ptest_list *);
 
 extern int ptest_list_length(struct ptest_list *);
 extern struct ptest_list *ptest_list_search(struct ptest_list *, char *);
+extern struct ptest_list *ptest_list_search_by_file(struct ptest_list *,
 char *, struct stat);
 extern struct ptest_list *ptest_list_add(struct ptest_list *, char *,
 char *);

extern struct ptest_list *ptest_list_remove(struct ptest_list *, char *,
int);

tests/data/python3 new file +0 -0
new file mode 120000
index 0000000..d8654aa

I forget to add symlink of python3 to python, used in testing.

Cheers,
Anibal

Quoted 38 lines
tests/data/python3 new file +1 -0
@@ -0,0 +1 @@
+python
\ No newline at end of file
tests/utils.c +1 -0
index ecf3e8a..cf09379 100644
@@ -48,6 +48,7 @@ static int ptests_found_length = 6;
 static char *ptests_not_found[] = {
        "busybox",
        "perl",
+       "python3",
        NULL,
 };
 
utils.c +6 -0
index 933eced..ed2eff7 100644
@@ -143,6 +143,12 @@ get_available_ptests(const char *dir)
                                continue;
                        }
 
+                       if (ptest_list_search_by_file(head, run_ptest,
 st_buf)) {
+                               free(run_ptest);
+                               free(d_name);
+                               continue;
+                       }
+
                        struct ptest_list *p = ptest_list_add(head,
                                d_name, run_ptest);

CHECK_ALLOCATION(p, sizeof(struct ptest_list *),
0);
--
2.11.0

#3 lore raw

PATCH v2 3/3 README.md: Update to my current email

In reply to Aníbal Limón

From: Aníbal Limón <[email protected]>

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
README.md +1 -1
index fedab04..22b36a4 100644
@@ -50,7 +50,7 @@ $ mtrace ./ptest-runner $(MALLOC_TRACE)
 
 For contribute please send a patch with subject prefix "[ptest-runner]" to 
 [email protected] and cc the current maintainer that is Aníbal Limón 
-<[email protected]>.
+<[email protected]>.
 
 ## Links
 
Signature · 1 line
2.11.0