#include "lxc/lxccontainer.h"
#include "lxctest.h"
+#include "utils.h"
+
+#ifndef HAVE_STRLCPY
+#include "include/strlcpy.h"
+#endif
+
+#define TSTNAME "lxc-api-reboot"
int main(int argc, char *argv[])
{
int i;
struct lxc_container *c;
int ret = EXIT_FAILURE;
+ struct lxc_log log;
+ char template[sizeof(P_tmpdir"/reboot_XXXXXX")];
+
+ (void)strlcpy(template, P_tmpdir"/reboot_XXXXXX", sizeof(template));
+
+ i = lxc_make_tmpfile(template, false);
+ if (i < 0) {
+ lxc_error("Failed to create temporary log file for container %s\n", TSTNAME);
+ exit(EXIT_FAILURE);
+ } else {
+ lxc_debug("Using \"%s\" as temporary log file for container %s\n", template, TSTNAME);
+ close(i);
+ }
+
+ log.name = TSTNAME;
+ log.file = template;
+ log.level = "TRACE";
+ log.prefix = "reboot";
+ log.quiet = false;
+ log.lxcpath = NULL;
+ if (lxc_log_init(&log))
+ exit(ret);
/* Test that the reboot() API function properly waits for containers to
* restart.
*/
- c = lxc_container_new("reboot", NULL);
+ c = lxc_container_new(TSTNAME, NULL);
if (!c) {
lxc_error("%s", "Failed to create container \"reboot\"");
exit(ret);
on_error_put:
lxc_container_put(c);
- if (ret == EXIT_SUCCESS)
+ if (ret == EXIT_SUCCESS) {
lxc_debug("%s\n", "All reboot tests passed");
+ } else {
+ int fd;
+
+ fd = open(template, O_RDONLY);
+ if (fd >= 0) {
+ char buf[4096];
+ ssize_t buflen;
+ while ((buflen = read(fd, buf, 1024)) > 0) {
+ buflen = write(STDERR_FILENO, buf, buflen);
+ if (buflen <= 0)
+ break;
+ }
+ close(fd);
+ }
+ }
+ (void)unlink(template);
exit(ret);
}