1 // Copyright 2014 The Android Open Source Project
2 //
3 // This software is licensed under the terms of the GNU General Public
4 // License version 2, as published by the Free Software Foundation, and
5 // may be copied, distributed, and modified under those terms.
6 //
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // GNU General Public License for more details.
11
12 #include "android/filesystems/fstab_parser.h"
13
14 #include <gtest/gtest.h>
15
TEST(FstabParser,ParsePartitionFormat)16 TEST(FstabParser, ParsePartitionFormat) {
17 static const char kFstab[] =
18 "# Android fstab file.\n"
19 "#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>\n"
20 "# The filesystem that contains the filesystem checker binary (typically /system) cannot\n"
21 "# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK\n"
22 "/dev/block/mtdblock0 /system ext4 ro,barrier=1 wait\n"
23 "/dev/block/mtdblock1\t \t /data\t yaffs2 noatime,nosuid,nodev,barrier=1,nomblk_io_submit wait,check\n"
24 "/dev/block/mtdblock2\t/cache\tntfs\tnoatime,nosuid,nodev wait,check\n"
25 "/devices/platform/goldfish_mmc.0\t\t\tauto\tvfat defaults voldmanaged=sdcard:auto\n"
26 ;
27 static const size_t kFstabSize = sizeof(kFstab);
28
29 char* out = NULL;
30 EXPECT_TRUE(android_parseFstabPartitionFormat(kFstab, kFstabSize,
31 "/system", &out));
32 EXPECT_STREQ("ext4", out);
33 free(out);
34
35 EXPECT_TRUE(android_parseFstabPartitionFormat(kFstab, kFstabSize,
36 "/data", &out));
37 EXPECT_STREQ("yaffs2", out);
38 free(out);
39
40 EXPECT_TRUE(android_parseFstabPartitionFormat(kFstab, kFstabSize,
41 "/cache", &out));
42 EXPECT_STREQ("ntfs", out);
43 free(out);
44
45 EXPECT_FALSE(android_parseFstabPartitionFormat(kFstab, kFstabSize,
46 "/unknown", &out));
47 }
48