aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.com>2016-06-20 13:16:40 -0400
committerDavid Sterba <dsterba@suse.com>2016-07-26 07:53:17 -0400
commit8632daae40c1a5b8fcc1d66d788c143353fd70b7 (patch)
treef0b4a31e869230810115a350e5080e56b18e0e07 /fs/btrfs
parent3cdde2240d4533ff71fbb8dc9c32d5d57d3cdeed (diff)
btrfs: tests, move initialization into tests/
We have all these stubs that only exist because they're called from btrfs_run_sanity_tests, which is a static inside super.c. Let's just move it all into tests/btrfs-tests.c and only have one stub. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/super.c43
-rw-r--r--fs/btrfs/tests/btrfs-tests.c47
-rw-r--r--fs/btrfs/tests/btrfs-tests.h35
3 files changed, 48 insertions, 77 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 4a0c0aeb0041..959823a12c42 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -2342,49 +2342,6 @@ static void btrfs_print_mod_info(void)
2342 btrfs_crc32c_impl()); 2342 btrfs_crc32c_impl());
2343} 2343}
2344 2344
2345static int btrfs_run_sanity_tests(void)
2346{
2347 int ret, i;
2348 u32 sectorsize, nodesize;
2349 u32 test_sectorsize[] = {
2350 PAGE_SIZE,
2351 };
2352 ret = btrfs_init_test_fs();
2353 if (ret)
2354 return ret;
2355 for (i = 0; i < ARRAY_SIZE(test_sectorsize); i++) {
2356 sectorsize = test_sectorsize[i];
2357 for (nodesize = sectorsize;
2358 nodesize <= BTRFS_MAX_METADATA_BLOCKSIZE;
2359 nodesize <<= 1) {
2360 pr_info("BTRFS: selftest: sectorsize: %u nodesize: %u\n",
2361 sectorsize, nodesize);
2362 ret = btrfs_test_free_space_cache(sectorsize, nodesize);
2363 if (ret)
2364 goto out;
2365 ret = btrfs_test_extent_buffer_operations(sectorsize,
2366 nodesize);
2367 if (ret)
2368 goto out;
2369 ret = btrfs_test_extent_io(sectorsize, nodesize);
2370 if (ret)
2371 goto out;
2372 ret = btrfs_test_inodes(sectorsize, nodesize);
2373 if (ret)
2374 goto out;
2375 ret = btrfs_test_qgroups(sectorsize, nodesize);
2376 if (ret)
2377 goto out;
2378 ret = btrfs_test_free_space_tree(sectorsize, nodesize);
2379 if (ret)
2380 goto out;
2381 }
2382 }
2383out:
2384 btrfs_destroy_test_fs();
2385 return ret;
2386}
2387
2388static int __init init_btrfs_fs(void) 2345static int __init init_btrfs_fs(void)
2389{ 2346{
2390 int err; 2347 int err;
diff --git a/fs/btrfs/tests/btrfs-tests.c b/fs/btrfs/tests/btrfs-tests.c
index 02223f3f78f4..71d9a0129347 100644
--- a/fs/btrfs/tests/btrfs-tests.c
+++ b/fs/btrfs/tests/btrfs-tests.c
@@ -54,7 +54,7 @@ struct inode *btrfs_new_test_inode(void)
54 return new_inode(test_mnt->mnt_sb); 54 return new_inode(test_mnt->mnt_sb);
55} 55}
56 56
57int btrfs_init_test_fs(void) 57static int btrfs_init_test_fs(void)
58{ 58{
59 int ret; 59 int ret;
60 60
@@ -73,7 +73,7 @@ int btrfs_init_test_fs(void)
73 return 0; 73 return 0;
74} 74}
75 75
76void btrfs_destroy_test_fs(void) 76static void btrfs_destroy_test_fs(void)
77{ 77{
78 kern_unmount(test_mnt); 78 kern_unmount(test_mnt);
79 unregister_filesystem(&test_type); 79 unregister_filesystem(&test_type);
@@ -220,3 +220,46 @@ void btrfs_init_dummy_trans(struct btrfs_trans_handle *trans)
220 INIT_LIST_HEAD(&trans->qgroup_ref_list); 220 INIT_LIST_HEAD(&trans->qgroup_ref_list);
221 trans->type = __TRANS_DUMMY; 221 trans->type = __TRANS_DUMMY;
222} 222}
223
224int btrfs_run_sanity_tests(void)
225{
226 int ret, i;
227 u32 sectorsize, nodesize;
228 u32 test_sectorsize[] = {
229 PAGE_SIZE,
230 };
231 ret = btrfs_init_test_fs();
232 if (ret)
233 return ret;
234 for (i = 0; i < ARRAY_SIZE(test_sectorsize); i++) {
235 sectorsize = test_sectorsize[i];
236 for (nodesize = sectorsize;
237 nodesize <= BTRFS_MAX_METADATA_BLOCKSIZE;
238 nodesize <<= 1) {
239 pr_info("BTRFS: selftest: sectorsize: %u nodesize: %u\n",
240 sectorsize, nodesize);
241 ret = btrfs_test_free_space_cache(sectorsize, nodesize);
242 if (ret)
243 goto out;
244 ret = btrfs_test_extent_buffer_operations(sectorsize,
245 nodesize);
246 if (ret)
247 goto out;
248 ret = btrfs_test_extent_io(sectorsize, nodesize);
249 if (ret)
250 goto out;
251 ret = btrfs_test_inodes(sectorsize, nodesize);
252 if (ret)
253 goto out;
254 ret = btrfs_test_qgroups(sectorsize, nodesize);
255 if (ret)
256 goto out;
257 ret = btrfs_test_free_space_tree(sectorsize, nodesize);
258 if (ret)
259 goto out;
260 }
261 }
262out:
263 btrfs_destroy_test_fs();
264 return ret;
265}
diff --git a/fs/btrfs/tests/btrfs-tests.h b/fs/btrfs/tests/btrfs-tests.h
index 66fb6b701eb7..e7d364f315db 100644
--- a/fs/btrfs/tests/btrfs-tests.h
+++ b/fs/btrfs/tests/btrfs-tests.h
@@ -20,20 +20,19 @@
20#define __BTRFS_TESTS 20#define __BTRFS_TESTS
21 21
22#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS 22#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
23int btrfs_run_sanity_tests(void);
23 24
24#define test_msg(fmt, ...) pr_info("BTRFS: selftest: " fmt, ##__VA_ARGS__) 25#define test_msg(fmt, ...) pr_info("BTRFS: selftest: " fmt, ##__VA_ARGS__)
25 26
26struct btrfs_root; 27struct btrfs_root;
27struct btrfs_trans_handle; 28struct btrfs_trans_handle;
28 29
29int btrfs_test_free_space_cache(u32 sectorsize, u32 nodesize);
30int btrfs_test_extent_buffer_operations(u32 sectorsize, u32 nodesize); 30int btrfs_test_extent_buffer_operations(u32 sectorsize, u32 nodesize);
31int btrfs_test_free_space_cache(u32 sectorsize, u32 nodesize);
31int btrfs_test_extent_io(u32 sectorsize, u32 nodesize); 32int btrfs_test_extent_io(u32 sectorsize, u32 nodesize);
32int btrfs_test_inodes(u32 sectorsize, u32 nodesize); 33int btrfs_test_inodes(u32 sectorsize, u32 nodesize);
33int btrfs_test_qgroups(u32 sectorsize, u32 nodesize); 34int btrfs_test_qgroups(u32 sectorsize, u32 nodesize);
34int btrfs_test_free_space_tree(u32 sectorsize, u32 nodesize); 35int btrfs_test_free_space_tree(u32 sectorsize, u32 nodesize);
35int btrfs_init_test_fs(void);
36void btrfs_destroy_test_fs(void);
37struct inode *btrfs_new_test_inode(void); 36struct inode *btrfs_new_test_inode(void);
38struct btrfs_fs_info *btrfs_alloc_dummy_fs_info(void); 37struct btrfs_fs_info *btrfs_alloc_dummy_fs_info(void);
39void btrfs_free_dummy_root(struct btrfs_root *root); 38void btrfs_free_dummy_root(struct btrfs_root *root);
@@ -42,35 +41,7 @@ btrfs_alloc_dummy_block_group(unsigned long length, u32 sectorsize);
42void btrfs_free_dummy_block_group(struct btrfs_block_group_cache *cache); 41void btrfs_free_dummy_block_group(struct btrfs_block_group_cache *cache);
43void btrfs_init_dummy_trans(struct btrfs_trans_handle *trans); 42void btrfs_init_dummy_trans(struct btrfs_trans_handle *trans);
44#else 43#else
45static inline int btrfs_test_free_space_cache(u32 sectorsize, u32 nodesize) 44static inline int btrfs_run_sanity_tests(void)
46{
47 return 0;
48}
49static inline int btrfs_test_extent_buffer_operations(u32 sectorsize,
50 u32 nodesize)
51{
52 return 0;
53}
54static inline int btrfs_init_test_fs(void)
55{
56 return 0;
57}
58static inline void btrfs_destroy_test_fs(void)
59{
60}
61static inline int btrfs_test_extent_io(u32 sectorsize, u32 nodesize)
62{
63 return 0;
64}
65static inline int btrfs_test_inodes(u32 sectorsize, u32 nodesize)
66{
67 return 0;
68}
69static inline int btrfs_test_qgroups(u32 sectorsize, u32 nodesize)
70{
71 return 0;
72}
73static inline int btrfs_test_free_space_tree(u32 sectorsize, u32 nodesize)
74{ 45{
75 return 0; 46 return 0;
76} 47}