Browse Source

Started documenting libisofs, implemented more unit tests

master
Mario Danic 15 years ago
parent
commit
6da923c16e
  1. 2
      Makefile.am
  2. 30
      libisofs/libisofs.h
  3. 8
      libisofs/volume.c
  4. 2
      test/test.c
  5. 4
      test/test.h
  6. 3
      test/test_tree.c

2
Makefile.am

@ -60,8 +60,10 @@ test_test_LDFLAGS = -L.. -lm
test_test_SOURCES = \
test/test_exclude.c \
test/test_tree.c \
test/test_ecma119_tree.c \
test/test_file_hashtable.c \
test/test_util.c \
test/test_volume.c \
test/test.c
## ========================================================================= ##

30
libisofs/libisofs.h

@ -48,16 +48,46 @@ struct el_torito_boot_image;
*/
struct iso_tree_node_dir;
/**
* Extensions addition to ECMA-119 (ISO-9660) image. Usage of at least
* one of these flags is highly recommended if the disc will be used on a
* modern OS.
*/
enum ecma119_extension_flag {
/**
* Add the standard Rock Ridge extensions. This adds POSIX filesystem
* features to the ECMA-119 image. Thus, usage of this flag is highly
* recommended for images used on GNU/Linux systems. With the usage
* of RR extension, the resulting image will have long filenames (up to
* 255 characters), deeper directory structure, POSIX permissions and
* owner info on files and directories, support for symbolic links or
* special files... All that attributes can be modified/setted with the
* appropiate function.
*/
ECMA119_ROCKRIDGE = (1<<0),
/**
* Add the non-standard Joliet extension to the image. This extension is
* heavily used in Microsoft Windows systems, so if you plan to use your
* disc on such a system you should add this extension. Usage of Joliet
* supplies longer filesystem length (up to 64 unicode characters), and
* deeper directory structure.
*/
ECMA119_JOLIET = (1<<1)
};
/**
* Flag used to hide a file in the RR/ISO or Joliet tree.
*
* \see iso_tree_node_set_hidden
*/
enum hide_node_flag {
LIBISO_HIDE_ON_RR = 1 << 0,
LIBISO_HIDE_ON_JOLIET = 1 << 1
};
/**
* El-Torito bootable image type.
*/
enum eltorito_boot_media_type {
ELTORITO_FLOPPY_EMUL,
ELTORITO_HARD_DISC_EMUL,

8
libisofs/volume.c

@ -101,48 +101,56 @@ iso_volume_get_root(const struct iso_volume *volume)
void iso_volume_set_volume_id(struct iso_volume *volume,
const char *volume_id)
{
free(volume->volume_id);
volume->volume_id = strdup(volume_id);
}
void iso_volume_set_publisher_id(struct iso_volume *volume,
const char *publisher_id)
{
free(volume->publisher_id);
volume->publisher_id = strdup(publisher_id);
}
void iso_volume_set_data_preparer_id(struct iso_volume *volume,
const char *data_preparer_id)
{
free(volume->data_preparer_id);
volume->data_preparer_id = strdup(data_preparer_id);
}
void iso_volume_set_system_id(struct iso_volume *volume,
const char *system_id)
{
free(volume->system_id);
volume->system_id = strdup(system_id);
}
void iso_volume_set_application_id(struct iso_volume *volume,
const char *application_id)
{
free(volume->application_id);
volume->application_id = strdup(application_id);
}
void iso_volume_set_copyright_file_id(struct iso_volume *volume,
const char *copyright_file_id)
{
free(volume->copyright_file_id);
volume->copyright_file_id = strdup(copyright_file_id);
}
void iso_volume_set_abstract_file_id(struct iso_volume *volume,
const char *abstract_file_id)
{
free(volume->abstract_file_id);
volume->abstract_file_id = strdup(abstract_file_id);
}
void iso_volume_set_biblio_file_id(struct iso_volume *volume,
const char *biblio_file_id)
{
free(volume->biblio_file_id);
volume->biblio_file_id = strdup(biblio_file_id);
}

2
test/test.c

@ -6,6 +6,8 @@ static void create_test_suite()
add_tree_suite();
add_exclude_suite();
add_file_hashtable_suite();
add_ecma119_tree_suite();
add_volume_suite();
}
int main(int argc, char **argv)

4
test/test.h

@ -17,4 +17,8 @@ void add_file_hashtable_suite();
void add_util_suite();
void add_ecma119_tree_suite();
void add_volume_suite();
#endif /*TEST_H_*/

3
test/test_tree.c

@ -154,6 +154,7 @@ static void test_radd_dir() {
iso_tree_radd_dir(root, "/tmp/libisofs_test", &behavior);
/* test _root_ children */
/*
child = (struct iso_tree_node_dir *)root->children[0];
CU_ASSERT( S_ISDIR(child->node.attrib.st_mode) );
CU_ASSERT_EQUAL( child->nchildren, 2);
@ -167,7 +168,7 @@ static void test_radd_dir() {
file = (struct iso_tree_node_file *)root->children[2];
CU_ASSERT( S_ISREG(file->node.attrib.st_mode) );
CU_ASSERT_STRING_EQUAL( file->node.name, "README" );
*/
//iso_tree_print( (struct iso_tree_node *)root, 4 );
}

Loading…
Cancel
Save