opkg: improve opkg_install error reporting and include a check to verify repository...
[oweals/opkg-lede.git] / tests / libopkg_test.c
index 6288bd41484c7a4efbff6443b2f99dc1cf20b23b..d9bd0ef10e60824466b66620bdca85220a2ff8a2 100644 (file)
@@ -4,6 +4,22 @@
 
 opkg_package_t *find_pkg = NULL;
 
 
 opkg_package_t *find_pkg = NULL;
 
+char *errors[10] = {
+  "No Error",
+  "Unknown Eror",
+  "Download failed",
+  "Dependancies failed",
+  "Package already installed",
+  "Package not available",
+  "Package not found",
+  "Package not installed",
+  "Signature check failed",
+  "MD5 sum failed"
+};
+
+
+#define TEST_PACKAGE "aspell"
+
 void
 progress_callback (opkg_t *opkg, const opkg_progress_data_t *progress, void *data)
 {
 void
 progress_callback (opkg_t *opkg, const opkg_progress_data_t *progress, void *data)
 {
@@ -38,6 +54,7 @@ void
 package_list_upgradable_callback (opkg_t *opkg, opkg_package_t *pkg, void *data)
 {
   printf ("%s - %s\n", pkg->name, pkg->version);
 package_list_upgradable_callback (opkg_t *opkg, opkg_package_t *pkg, void *data)
 {
   printf ("%s - %s\n", pkg->name, pkg->version);
+  opkg_package_free (pkg);
 }
 
 void
 }
 
 void
@@ -79,7 +96,7 @@ main (int argc, char **argv)
   opkg_re_read_config_files (opkg);
 
   err = opkg_update_package_lists (opkg, progress_callback, "Updating...");
   opkg_re_read_config_files (opkg);
 
   err = opkg_update_package_lists (opkg, progress_callback, "Updating...");
-  printf ("\nopkg_update_package_lists returned %d\n", err);
+  printf ("\nopkg_update_package_lists returned %d (%s)\n", err, errors[err]);
 
   opkg_list_packages (opkg, package_list_callback, NULL);
   printf ("\n");
 
   opkg_list_packages (opkg, package_list_callback, NULL);
   printf ("\n");
@@ -91,29 +108,29 @@ main (int argc, char **argv)
     if (pkg)
     {
       print_package (pkg);
     if (pkg)
     {
       print_package (pkg);
-      opkg_package_free (find_pkg);
       opkg_package_free (pkg);
     }
     else
       printf ("Package \"%s\" not found!\n", find_pkg->name);
       opkg_package_free (pkg);
     }
     else
       printf ("Package \"%s\" not found!\n", find_pkg->name);
+    opkg_package_free (find_pkg);
   }
   else
     printf ("No package available to test find_package.\n");
 
   }
   else
     printf ("No package available to test find_package.\n");
 
-  err = opkg_install_package (opkg, "aspell", progress_callback, "Installing...");
-  printf ("\nopkg_install_package returned %d\n", err);
+  err = opkg_install_package (opkg, TEST_PACKAGE, progress_callback, "Installing...");
+  printf ("\nopkg_install_package returned %d (%s)\n", err, errors[err]);
 
 
-  err = opkg_upgrade_package (opkg, "aspell", progress_callback, "Upgrading...");
-  printf ("\nopkg_upgrade_package returned %d\n", err);
+  err = opkg_upgrade_package (opkg, TEST_PACKAGE, progress_callback, "Upgrading...");
+  printf ("\nopkg_upgrade_package returned %d (%s)\n", err, errors[err]);
 
 
-  err = opkg_remove_package (opkg, "aspell", progress_callback, "Removing...");
-  printf ("\nopkg_remove_package returned %d\n", err);
+  err = opkg_remove_package (opkg, TEST_PACKAGE, progress_callback, "Removing...");
+  printf ("\nopkg_remove_package returned %d (%s)\n", err, errors[err]);
 
   printf ("Listing upgradable packages...\n");
   opkg_list_upgradable_packages (opkg, package_list_upgradable_callback, NULL);
 
   err = opkg_upgrade_all (opkg, progress_callback, "Upgrading all...");
 
   printf ("Listing upgradable packages...\n");
   opkg_list_upgradable_packages (opkg, package_list_upgradable_callback, NULL);
 
   err = opkg_upgrade_all (opkg, progress_callback, "Upgrading all...");
-  printf ("\nopkg_upgrade_all returned %d\n", err);
+  printf ("\nopkg_upgrade_all returned %d (%s)\n", err, errors[err]);
 
   opkg_free (opkg);
 
 
   opkg_free (opkg);