#!/bin/sh

# Smoke test for linking a very simple binary to libcasefold

# Copyright © 2018 Collabora Ltd.
# SPDX-License-Identifier: LGPL-2.1+

set -e
exec 2>&1
set -x

WORKDIR="$(mktemp -d)"
trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
cd "$WORKDIR"

echo "1..1"

cat > example.c <<'EOF'
#include <stdio.h>

/* This is basically a very simple cat(1). */
int main (void)
{
  FILE *f = fopen ("/etc/DEBIAN_VERSION", "r");

  if (f == NULL)
    {
      perror ("fopen /etc/DEBIAN_VERSION");
      return 1;
    }

  while (1)
    {
      char buf[4096];
      size_t read, wrote;

      read = fread (buf, 1, sizeof (buf), f);

      if (read == 0)
        {
          if (ferror (f))
            {
              perror ("fread /etc/DEBIAN_VERSION");
              return 1;
            }
          else
            {
              break;
            }
        }

      wrote = fwrite (buf, 1, read, stdout);

      if (read != wrote)
        {
          perror ("fwrite stdout");
          return 1;
        }
    }

  if (fclose (f) != 0)
    {
      perror ("fclose /etc/DEBIAN_VERSION");
      return 1;
    }

  if (fclose (stdout) != 0)
    {
      perror ("fclose stdout");
      return 1;
    }

  return 0;
}
EOF

gcc -Wl,--no-as-needed -lcasefold -oexample example.c
CI_MOUNTPOINTS=/etc ./example

echo "ok 1"
