#!/bin/sh

set -eu

TEST_DIR=$(dirname $(realpath $0))

cd "$AUTOPKGTEST_TMP"

cat <<EOF > test.c
#include <stdio.h>
#include <stdlib.h>
#include <libbase64.h>
#define DATA_SIZE 10 * 1024 * 1024 // 10 MiB
int main(void)
{
  unsigned char *raw_data = malloc(DATA_SIZE);
  char *out_aklomp = malloc(DATA_SIZE * 2);
  for (int i = 0; i < DATA_SIZE; i++) raw_data[i] = rand() & 0xFF;
  size_t out_len;
  base64_encode((char*)raw_data, DATA_SIZE, out_aklomp, &out_len, 0);
  printf("test aklomp-base64-dev: base64_encode has finished\n");
  return 0;
}
EOF

echo "## Checking find_package(aklomp-base64 REQUIRED)"
cat <<EOF > CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(test)

find_package(aklomp-base64 REQUIRED)

add_executable(test test.c)

target_link_libraries(test PRIVATE aklomp::base64)
EOF

OUTPUT_DIR=find_aklomp-base64
cmake . -B $OUTPUT_DIR
cmake --build $OUTPUT_DIR
find $OUTPUT_DIR -name test
$OUTPUT_DIR/test

echo "## Checking find_package(base64 NAMES base64 aklomp-base64 REQUIRED)"
cat <<EOF > CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(test)

find_package(base64 NAMES base64 aklomp-base64 REQUIRED)

add_executable(test test.c)

target_link_libraries(test PRIVATE aklomp::base64)
EOF

OUTPUT_DIR=find_base64-aklomp-base64
cmake . -B $OUTPUT_DIR
cmake --build $OUTPUT_DIR
find $OUTPUT_DIR -name test
$OUTPUT_DIR/test

exit 0
