Blame test/check_sizeof.c

Packit dd8086
/*
Packit dd8086
    Copyright (C) 2001, 2008, 2011 Herbert Valerio Riedel <hvr@gnu.org>
Packit dd8086
Packit dd8086
     This program is free software: you can redistribute it and/or modify
Packit dd8086
     it under the terms of the GNU General Public License as published by
Packit dd8086
     the Free Software Foundation, either version 3 of the License, or
Packit dd8086
     (at your option) any later version.
Packit dd8086
Packit dd8086
     This program is distributed in the hope that it will be useful,
Packit dd8086
     but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit dd8086
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit dd8086
     GNU General Public License for more details.
Packit dd8086
Packit dd8086
     You should have received a copy of the GNU General Public License
Packit dd8086
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit dd8086
*/
Packit dd8086
#ifdef HAVE_CONFIG_H
Packit dd8086
#include "config.h"
Packit dd8086
#define __CDIO_CONFIG_H__ 1
Packit dd8086
#endif
Packit dd8086
Packit dd8086
#include <assert.h>
Packit dd8086
#ifdef HAVE_STDLIB_H
Packit dd8086
#include <stdlib.h>
Packit dd8086
#endif
Packit dd8086
#ifdef HAVE_STRING_H
Packit dd8086
#include <string.h>
Packit dd8086
#endif
Packit dd8086
#ifdef HAVE_STDIO_H
Packit dd8086
#include <stdio.h>
Packit dd8086
#endif
Packit dd8086
#include <math.h>
Packit dd8086
Packit dd8086
#include <cdio/iso9660.h>
Packit dd8086
#include <cdio/types.h>
Packit dd8086
Packit dd8086
/* Private headers */
Packit dd8086
#include "iso9660_private.h"
Packit dd8086
Packit dd8086
#define CHECK_SIZEOF(typnam) { \
Packit dd8086
  printf ("-- checking sizeof (%s) ...", #typnam); \
Packit dd8086
  if (sizeof (typnam) != (typnam##_SIZEOF)) { \
Packit dd8086
      printf ("failed!\n==> sizeof (%s) == %d (but should be %d)\n", \
Packit dd8086
              #typnam, (int)sizeof(typnam), (int)(typnam##_SIZEOF)); \
Packit dd8086
      fail++; \
Packit dd8086
  } else { pass++; printf ("ok!\n"); } \
Packit dd8086
}
Packit dd8086
Packit dd8086
#define CHECK_SIZEOF_STRUCT(typnam) { \
Packit dd8086
  printf ("-- checking sizeof (struct %s) ...", #typnam); \
Packit dd8086
  if (sizeof (struct typnam) != (struct_##typnam##_SIZEOF)) { \
Packit dd8086
      printf ("failed!\n==> sizeof (struct %s) == %d (but should be %d)\n", \
Packit dd8086
              #typnam, (int)sizeof(struct typnam), (int)(struct_##typnam##_SIZEOF)); \
Packit dd8086
      fail++; \
Packit dd8086
  } else { pass++; printf ("ok!\n"); } \
Packit dd8086
}
Packit dd8086
Packit dd8086
int main (int argc, const char *argv[])
Packit dd8086
{
Packit dd8086
  unsigned fail = 0, pass = 0;
Packit dd8086
Packit dd8086
  /* <cdio/types.h> */
Packit dd8086
  CHECK_SIZEOF(msf_t);
Packit dd8086
Packit dd8086
  /* "iso9660_private.h" */
Packit dd8086
  CHECK_SIZEOF(iso_volume_descriptor_t);
Packit dd8086
  CHECK_SIZEOF(iso9660_pvd_t);
Packit dd8086
  CHECK_SIZEOF(iso_path_table_t);
Packit dd8086
  CHECK_SIZEOF(iso9660_dir_t);
Packit dd8086
Packit dd8086
#define iso9660_xa_t_SIZEOF 14
Packit dd8086
Packit dd8086
  /* xa.h */
Packit dd8086
  CHECK_SIZEOF(iso9660_xa_t);
Packit dd8086
Packit dd8086
  if (fail)
Packit dd8086
    return 1;
Packit dd8086
Packit dd8086
  return 0;
Packit dd8086
}