add new/missing files
[flac.git] / src / test_libFLAC++ / file_utils.c
index 31f8063..48168a8 100644 (file)
@@ -1,5 +1,5 @@
 /* test_libFLAC - Unit tester for libFLAC
- * Copyright (C) 2002  Josh Coalson
+ * Copyright (C) 2002,2003  Josh Coalson
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
 #include "FLAC/stream_encoder.h"
 #include <stdio.h>
 #include <stdlib.h>
-#if defined _MSC_VER || defined __MINGW32__
-#include <io.h> /* for chmod(), unlink */
-#endif
-#include <sys/stat.h> /* for stat(), chmod() */
-#if defined _WIN32 && !defined __CYGWIN__
-#else
-#include <unistd.h> /* for unlink() */
-#endif
+#include <sys/stat.h> /* for stat() */
 
 #ifdef min
 #undef min
 #endif
 #define min(a,b) ((a)<(b)?(a):(b))
 
+#ifdef FLAC__VALGRIND_TESTING
+static size_t local__fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
+{
+       size_t ret = fwrite(ptr, size, nmemb, stream);
+       if(!ferror(stream))
+               fflush(stream);
+       return ret;
+}
+#else
+#define local__fwrite fwrite
+#endif
+
 typedef struct {
        FILE *file;
 } encoder_client_struct;
@@ -45,54 +50,18 @@ static FLAC__StreamEncoderWriteStatus encoder_write_callback_(const FLAC__Stream
 
        (void)encoder, (void)samples, (void)current_frame;
 
-       if(fwrite(buffer, 1, bytes, ecd->file) != bytes)
-               return FLAC__STREAM_ENCODER_WRITE_FATAL_ERROR;
+       if(local__fwrite(buffer, 1, bytes, ecd->file) != bytes)
+               return FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR;
        else
-               return FLAC__STREAM_ENCODER_WRITE_OK;
+               return FLAC__STREAM_ENCODER_WRITE_STATUS_OK;
 }
 
-static void encoder_metadata_callback_(const FLAC__StreamEncoder *encoder, const FLAC__StreamMetaData *metadata, void *client_data)
+static void encoder_metadata_callback_(const FLAC__StreamEncoder *encoder, const FLAC__StreamMetadata *metadata, void *client_data)
 {
        (void)encoder, (void)metadata, (void)client_data;
 }
 
-FLAC__bool file_utils__change_stats(const char *filename, FLAC__bool read_only)
-{
-       struct stat stats;
-
-       if(0 == stat(filename, &stats)) {
-#if !defined _MSC_VER && !defined __MINGW32__
-               if(read_only) {
-                       stats.st_mode &= ~S_IWUSR;
-                       stats.st_mode &= ~S_IWGRP;
-                       stats.st_mode &= ~S_IWOTH;
-               }
-               else {
-                       stats.st_mode |= S_IWUSR;
-                       stats.st_mode |= S_IWGRP;
-                       stats.st_mode |= S_IWOTH;
-               }
-#else
-               if(read_only)
-                       stats.st_mode &= ~S_IWRITE;
-               else
-                       stats.st_mode |= S_IWRITE;
-#endif
-               if(0 != chmod(filename, stats.st_mode))
-                       return false;
-       }
-       else
-               return false;
-
-       return true;
-}
-
-FLAC__bool file_utils__remove_file(const char *filename)
-{
-       return file_utils__change_stats(filename, /*read_only=*/false) && 0 == unlink(filename);
-}
-
-FLAC__bool file_utils__generate_flacfile(const char *output_filename, unsigned *output_filesize, unsigned length, const FLAC__StreamMetaData *streaminfo, FLAC__StreamMetaData **metadata, unsigned num_metadata)
+FLAC__bool file_utils__generate_flacfile(const char *output_filename, unsigned *output_filesize, unsigned length, const FLAC__StreamMetadata *streaminfo, FLAC__StreamMetadata **metadata, unsigned num_metadata)
 {
        FLAC__int32 samples[1024];
        FLAC__StreamEncoder *encoder;
@@ -113,6 +82,7 @@ FLAC__bool file_utils__generate_flacfile(const char *output_filename, unsigned *
                return false;
        }
 
+       FLAC__stream_encoder_set_verify(encoder, true);
        FLAC__stream_encoder_set_streamable_subset(encoder, true);
        FLAC__stream_encoder_set_do_mid_side_stereo(encoder, false);
        FLAC__stream_encoder_set_loose_mid_side_stereo(encoder, false);