Errors

abox.ErrGuestTooOld on the one SDK, pkg/abox.

Demonstrates a missing golden image, then ErrGuestTooOld when the guest is v1 and TurnOpts is used.

package main

import (
	"context"
	"errors"
	"fmt"
	"os"
	"time"

	"github.com/AdminTurnedDevOps/ABox/pkg/abox"
)

func main() {
	ctx := context.Background()
	_, err := abox.Open(ctx, abox.Options{
		Image:       "/nonexistent/abox-guest.raw",
		BootTimeout: 5 * time.Second,
	})
	if err == nil {
		fmt.Fprintln(os.Stderr, "expected missing image error")
		os.Exit(1)
	}
	fmt.Println("missing image:", err)

	sess, err := abox.Open(ctx, abox.Options{})
	if err != nil {
		fmt.Fprintln(os.Stderr, err)
		os.Exit(1)
	}
	defer sess.Close()
	if sess.Capabilities().Protocol >= 2 {
		fmt.Println("guest is protocol 2; ErrGuestTooOld will not fire")
		return
	}
	_, err = sess.TurnOpts(ctx, "hi", abox.TurnOpts{MaxTurns: 2}, nil)
	if !errors.Is(err, abox.ErrGuestTooOld) {
		fmt.Println("expected ErrGuestTooOld, got", err)
		os.Exit(1)
	}
	fmt.Println("v1 guest:", err)
}