minor syntax
[flac.git] / src / test_libOggFLAC++ / file_utils.c
index 2f8e7c7..3758d70 100644 (file)
 #include "OggFLAC/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))
 
+const long file_utils__serial_number = 12345;
+
+#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,48 +52,12 @@ static FLAC__StreamEncoderWriteStatus encoder_write_callback_(const OggFLAC__Str
 
        (void)encoder, (void)samples, (void)current_frame;
 
-       if(fwrite(buffer, 1, bytes, ecd->file) != bytes)
+       if(local__fwrite(buffer, 1, bytes, ecd->file) != bytes)
                return FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR;
        else
                return FLAC__STREAM_ENCODER_WRITE_STATUS_OK;
 }
 
-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_oggflacfile(const char *output_filename, unsigned *output_filesize, unsigned length, const FLAC__StreamMetadata *streaminfo, FLAC__StreamMetadata **metadata, unsigned num_metadata)
 {
        FLAC__int32 samples[1024];
@@ -108,6 +79,7 @@ FLAC__bool file_utils__generate_oggflacfile(const char *output_filename, unsigne
                return false;
        }
 
+       OggFLAC__stream_encoder_set_serial_number(encoder, file_utils__serial_number);
        OggFLAC__stream_encoder_set_verify(encoder, true);
        OggFLAC__stream_encoder_set_streamable_subset(encoder, true);
        OggFLAC__stream_encoder_set_do_mid_side_stereo(encoder, false);