#include <string.h>
#include <stdio.h>
#include <ctype.h>

#ifndef BUILD_CONFIG_NAME
# error "BUILD_CONFIG_NAME not defined!"
#endif

int main()
{
  char build_config_name[] = BUILD_CONFIG_NAME;
  char* c;
  for(c = build_config_name; *c; ++c)
    {
    *c = (char)tolower((int)*c);
    }
  fprintf(stderr, "build_config_name=\"%s\"\n", build_config_name);
#ifdef TEST_CONFIG_DEBUG
  if(strcmp(build_config_name, "debug") != 0)
    {
    fprintf(stderr, "build_config_name is not \"debug\"\n");
    return 1;
    }
#endif
#ifdef TEST_CONFIG_RELEASE
  if(strcmp(build_config_name, "release") != 0)
    {
    fprintf(stderr, "build_config_name is not \"release\"\n");
    return 1;
    }
#endif
#ifdef TEST_CONFIG_MINSIZEREL
  if(strcmp(build_config_name, "minsizerel") != 0)
    {
    fprintf(stderr, "build_config_name is not \"minsizerel\"\n");
    return 1;
    }
#endif
#ifdef TEST_CONFIG_RELWITHDEBINFO
  if(strcmp(build_config_name, "relwithdebinfo") != 0)
    {
    fprintf(stderr, "build_config_name is not \"relwithdebinfo\"\n");
    return 1;
    }
#endif
  return 0;
}
