socsvn commit: r254218 - soc2013/mattbw/tests/install

mattbw at FreeBSD.org mattbw at FreeBSD.org
Sat Jul 6 07:09:03 UTC 2013


Author: mattbw
Date: Sat Jul  6 07:09:02 2013
New Revision: 254218
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=254218

Log:
  adds more testbed code for checking why install-packages isn't working

Added:
  soc2013/mattbw/tests/install/
  soc2013/mattbw/tests/install/Makefile
  soc2013/mattbw/tests/install/insttest.1
  soc2013/mattbw/tests/install/insttest.c

Added: soc2013/mattbw/tests/install/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ soc2013/mattbw/tests/install/Makefile	Sat Jul  6 07:09:02 2013	(r254218)
@@ -0,0 +1,7 @@
+# $FreeBSD$
+
+PROG=		insttest
+CFLAGS+=	`pkgconf --cflags pkg` -g
+LDFLAGS+=	`pkgconf --libs pkg`
+
+.include <bsd.prog.mk>

Added: soc2013/mattbw/tests/install/insttest.1
==============================================================================

Added: soc2013/mattbw/tests/install/insttest.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ soc2013/mattbw/tests/install/insttest.c	Sat Jul  6 07:09:02 2013	(r254218)
@@ -0,0 +1,102 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "pkg.h"
+
+void handle_it(struct pkgdb_it *it);
+int getdb(struct pkgdb **db);
+
+int
+getdb(struct pkgdb **db)
+{
+	int err;
+
+	 err = pkgdb_access(PKGDB_MODE_READ, PKGDB_DB_REPO);
+
+	if (err == EPKG_ENOACCESS)
+		fprintf(stderr, "check your privilege: %i\n", err);
+	else if (err != EPKG_OK)
+		fprintf(stderr, "access error: %i\n", err);
+	else {
+		err = pkgdb_open(db, PKGDB_REMOTE);
+		if (err != EPKG_OK)
+			fprintf(stderr, "open error: %i\n", err);
+	}
+	return err;
+}
+
+int
+main(int argc, char **argv)
+{
+	struct pkg *pkg;
+	struct pkgdb *db;
+	struct pkg_jobs *jobs;
+	int err;
+
+	db = NULL;
+	pkg = NULL;
+	jobs = NULL;
+
+	err = ((argc == 2 || argc == 3) ? EPKG_OK : EPKG_FATAL);
+	if (err == EPKG_OK) {
+		err = pkg_init(NULL);
+		if (err != EPKG_OK)
+			fprintf(stderr, "could not parse config file\n");
+	} else
+		fprintf(stderr, "usage: %s name [repo]\n", argv[0]);
+
+	if (err == EPKG_OK)
+		err = getdb(&db);
+
+	if (err == EPKG_OK) {
+		err = pkg_jobs_new(&jobs, PKG_JOBS_INSTALL, db);
+		if (err != EPKG_OK)
+			fprintf(stderr, "couldn't create jobs\n");
+	}
+
+	if (err == EPKG_OK && argc == 3) {
+		char *rep;
+
+		/* Test what happens to set_repository if it's passed NULL */
+		if (strcmp(argv[2], "null") == 0) {
+			rep = NULL;
+			printf("using null\n");
+		} else
+			rep = argv[2];
+
+		err = pkg_jobs_set_repository(jobs, rep);
+		if (err != EPKG_OK)
+			fprintf(stderr, "couldn't set repo\n");
+	}
+
+	if (err == EPKG_OK) {
+		err = pkg_jobs_add(jobs, MATCH_EXACT, argv + 1, 1);
+		if (err != EPKG_OK)
+			fprintf(stderr, "couldn't add to job\n");
+	}
+
+	if (err == EPKG_OK) {
+		err = pkg_jobs_solve(jobs);
+		if (err != EPKG_OK)
+			fprintf(stderr, "couldn't solve: %u\n", err);
+	}
+
+	if (err == EPKG_OK) {
+		int c;
+
+		c = pkg_jobs_count(jobs);
+		if (c > 0) {
+			printf("%i jobs\n", c);
+			while (pkg_jobs(jobs, &pkg) == EPKG_OK)
+				pkg_printf("%n\n", pkg);
+		} else
+			fprintf(stderr, "nothing to do\n");
+	}
+
+	printf("shutting down\n");
+	pkg_jobs_free(jobs);
+	pkg_free(pkg);
+	pkgdb_close(db);
+	pkg_shutdown();
+	printf("shutdown\n");
+}


More information about the svn-soc-all mailing list