#!/usr/bin/bash

SILENT=0

generate_csource()
{
    TEST=$1
    FORMAT_ID=$2
    FORMAT_EXT=$3
    cat <<EOF > $TEST.c
  #include <gr.h>
  #include <gks.h>
  #define MYWORKSTATION_ID 1
  #define MYWORKSTATION_TYPE $FORMAT_ID /* $FORMAT_EXT */
  int main(void) {
    gr_opengks();
    gr_openws(MYWORKSTATION_ID, "$TEST.$FORMAT_EXT", MYWORKSTATION_TYPE);
    gr_activatews(MYWORKSTATION_ID);
    gr_drawrect(0, 0, 100, 100);
    gr_updatews();
    gr_emergencyclosegks();
    return 0;
  }
EOF
}

run_test()
{
    PLUGIN=$1
    FORMAT_ID=$2
    FORMAT_EXT=$3
    TEST="test-plugin-${PLUGIN}-${FORMAT_EXT}"
    generate_csource $TEST $FORMAT_ID $FORMAT_EXT
    if [ $SILENT -ne 1 ]; then
        cat $TEST.c
    fi
    gcc -o $TEST $TEST.c `pkg-config --cflags --libs gr` `pkg-config --cflags --libs gks`
    ./$TEST
    test -f $TEST.$FORMAT_EXT
    if [ $SILENT -ne 1 ]; then
        mediainfo $TEST.$FORMAT_EXT
    fi
    echo "Using $PLUGIN plugin to generate $FORMAT_EXT: OK"
    rm -f $TEST*
}
