~ubuntu-branches/ubuntu/vivid/libnih/vivid-proposed

« back to all changes in this revision

Viewing changes to nih/tests/test_file.c

  • Committer: Dmitrijs Ledkovs
  • Date: 2012-12-11 17:26:44 UTC
  • mfrom: (1067.1.4 libnih-ubuntu)
  • Revision ID: dmitrijs.ledkovs@canonical.com-20121211172644-b5emxis0x2b0clos
Fallback to lstat, if dirent.d_type is not available (not portable)
(LP: #672643) (Closes: #695604)

Show diffs side-by-side

added added

removed removed

Lines of Context:
724
724
        return FALSE;
725
725
}
726
726
 
 
727
/* find only frodo files */
 
728
static int
 
729
my_filter_frodo_file (void       *data,
 
730
           const char *path,
 
731
           int         is_dir)
 
732
{
 
733
        char *slash;
 
734
 
 
735
        if (is_dir)
 
736
                return FALSE;
 
737
 
 
738
        slash = strrchr (path, '/');
 
739
        if (strcmp (slash, "/frodo"))
 
740
                return TRUE;
 
741
 
 
742
        return FALSE;
 
743
}
 
744
 
 
745
 
727
746
static int logger_called = 0;
728
747
 
729
748
static int
905
924
                TEST_EQ_STR (v->path, filename);
906
925
 
907
926
                nih_free (visited);
 
927
 
 
928
                                /* Try also inverse filter */
 
929
                TEST_ALLOC_SAFE {
 
930
                        visitor_called = 0;
 
931
                        visited = nih_list_new (NULL);
 
932
                }
 
933
 
 
934
                ret = nih_dir_walk (dirname, my_filter_frodo_file,
 
935
                                    my_visitor, NULL, &ret);
 
936
 
 
937
                TEST_EQ (ret, 0);
 
938
                TEST_EQ (visitor_called, 4);
 
939
 
 
940
                v = (Visited *)visited->next;
 
941
                TEST_EQ (v->data, &ret);
 
942
                TEST_EQ_STR (v->dirname, dirname);
 
943
                strcpy (filename, dirname);
 
944
                strcat (filename, "/bar");
 
945
                TEST_EQ_STR (v->path, filename);
 
946
 
 
947
                v = (Visited *)v->entry.next;
 
948
                TEST_EQ (v->data, &ret);
 
949
                TEST_EQ_STR (v->dirname, dirname);
 
950
                strcpy (filename, dirname);
 
951
                strcat (filename, "/bar/frodo");
 
952
                TEST_EQ_STR (v->path, filename);
 
953
 
 
954
                v = (Visited *)v->entry.next;
 
955
                TEST_EQ (v->data, &ret);
 
956
                TEST_EQ_STR (v->dirname, dirname);
 
957
                strcpy (filename, dirname);
 
958
                strcat (filename, "/baz");
 
959
                TEST_EQ_STR (v->path, filename);
 
960
 
 
961
                v = (Visited *)v->entry.next;
 
962
                TEST_EQ (v->data, &ret);
 
963
                TEST_EQ_STR (v->dirname, dirname);
 
964
                strcpy (filename, dirname);
 
965
                strcat (filename, "/frodo");
 
966
                TEST_EQ_STR (v->path, filename);
 
967
 
 
968
                nih_free (visited);
908
969
        }
909
970
 
910
971