Date: Sat, 6 Jul 2013 07:09:02 GMT From: mattbw@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r254218 - soc2013/mattbw/tests/install Message-ID: <201307060709.r66792Wm016125@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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"); +}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307060709.r66792Wm016125>