Esempio n. 1
0
void simple_test() {
  time_map_type * time_map = time_map_alloc( );
  test_work_area_type * work_area = test_work_area_alloc("enkf_time_map" , true);
  const char * mapfile = "map";
  
  test_assert_true( time_map_update( time_map , 0 , 100 )   );
  test_assert_true( time_map_update( time_map , 1 , 200 )   );
  test_assert_true( time_map_update( time_map , 1 , 200 )   );
  test_assert_false( time_map_update( time_map , 1 , 250 )  );

  test_assert_true( time_map_equal( time_map , time_map ) );
  time_map_fwrite( time_map , mapfile);
  {
    time_map_type * time_map2 = time_map_alloc( );

    test_assert_false( time_map_equal( time_map , time_map2 ) );
    time_map_fread( time_map2 , mapfile );
    test_assert_true( time_map_equal( time_map , time_map2 )  );
    time_map_free( time_map2 );
  }
  {
    time_t mtime1 = util_file_mtime( mapfile );
    sleep(2);
    time_map_fwrite( time_map , mapfile);
    
    test_assert_time_t_equal( mtime1 , util_file_mtime( mapfile ) );
    time_map_update( time_map , 2 , 300 );
    time_map_fwrite( time_map , mapfile);
    test_assert_time_t_not_equal( mtime1 , util_file_mtime( mapfile ) );
  }
  test_work_area_free( work_area );
}
Esempio n. 2
0
void thread_test() {
  time_map_type * time_map = time_map_alloc( );
  
  {
    int pool_size = 1000;
    thread_pool_type * tp = thread_pool_alloc( pool_size/2 , true );
    
    thread_pool_add_job( tp , update_time_map , time_map );
  
    thread_pool_join(tp);
    thread_pool_free(tp);
  }
  {
    int i;
    for (i=0; i < MAP_SIZE; i++) 
      test_assert_true( time_map_iget( time_map , i ) == i );
  }
  time_map_free( time_map );
}
Esempio n. 3
0
void ecl_test( const char * ecl_case ) {
  ecl_sum_type * ecl_sum  = ecl_sum_fread_alloc_case( ecl_case , ":");
  time_t start_time = ecl_sum_get_start_time( ecl_sum );
  time_t end_time   = ecl_sum_get_end_time( ecl_sum );
  time_map_type * ecl_map = time_map_alloc( );
  
  test_assert_true( time_map_summary_update( ecl_map , ecl_sum ) );
  test_assert_true( time_map_summary_update( ecl_map , ecl_sum ) );
  
  test_assert_time_t_equal( time_map_get_start_time( ecl_map ) , start_time );
  test_assert_time_t_equal( time_map_get_end_time( ecl_map ) , end_time );
  test_assert_double_equal( time_map_get_end_days( ecl_map ) , ecl_sum_get_sim_length( ecl_sum ));

  time_map_clear( ecl_map );
  time_map_update( ecl_map , 1 , 256 );
  test_assert_false( time_map_summary_update( ecl_map , ecl_sum ));
  
  time_map_free( ecl_map );
  ecl_sum_free( ecl_sum );
}
Esempio n. 4
0
void enkf_fs_close( enkf_fs_type * fs ) {
  enkf_fs_fsync( fs );
  enkf_fs_fwrite_misfit( fs );

  enkf_fs_free_driver( fs->dynamic_forecast );
  enkf_fs_free_driver( fs->dynamic_analyzed );
  enkf_fs_free_driver( fs->parameter );
  enkf_fs_free_driver( fs->eclipse_static );
  enkf_fs_free_driver( fs->index );

  util_safe_free( fs->case_name );
  util_safe_free( fs->root_path );
  util_safe_free( fs->mount_point );
  path_fmt_free( fs->case_fmt );
  path_fmt_free( fs->case_member_fmt );
  path_fmt_free( fs->case_tstep_fmt );
  path_fmt_free( fs->case_tstep_member_fmt );

  time_map_free( fs->time_map );
  free( fs );
}
Esempio n. 5
0
File: enkf_fs.c Progetto: shulNN/ert
static void enkf_fs_umount( enkf_fs_type * fs ) {
  if (!fs->read_only) {
    enkf_fs_fsync( fs );
    enkf_fs_fwrite_misfit( fs );
  }

  if (fs->lock_fd > 0) {
    close( fs->lock_fd );  // Closing the lock_file file descriptor - and releasing the lock.
    util_unlink_existing( fs->lock_file );
  }

  
  {
    int refcount = fs->refcount;
    if (refcount == 0) {
      enkf_fs_free_driver( fs->dynamic_forecast );
      enkf_fs_free_driver( fs->dynamic_analyzed );
      enkf_fs_free_driver( fs->parameter );
      enkf_fs_free_driver( fs->eclipse_static );
      enkf_fs_free_driver( fs->index );
      
      util_safe_free( fs->case_name );
      util_safe_free( fs->root_path );
      util_safe_free(fs->lock_file);
      util_safe_free( fs->mount_point );
      path_fmt_free( fs->case_fmt );
      path_fmt_free( fs->case_member_fmt );
      path_fmt_free( fs->case_tstep_fmt );
      path_fmt_free( fs->case_tstep_member_fmt );
      
      state_map_free( fs->state_map );
      time_map_free( fs->time_map );
      cases_config_free( fs->cases_config );
      free( fs );
    } else
      util_abort("%s: internal fuckup - tried to umount a filesystem with refcount:%d\n",__func__ , refcount);
  }
}