~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/mm/damon/dbgfs-test.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /mm/damon/dbgfs-test.h (Version linux-6.11-rc3) and /mm/damon/dbgfs-test.h (Version linux-4.13.16)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 
  2 /*                                                
  3  * DAMON Debugfs Interface Unit Tests             
  4  *                                                
  5  * Author: SeongJae Park <sj@kernel.org>          
  6  */                                               
  7                                                   
  8 #ifdef CONFIG_DAMON_DBGFS_KUNIT_TEST              
  9                                                   
 10 #ifndef _DAMON_DBGFS_TEST_H                       
 11 #define _DAMON_DBGFS_TEST_H                       
 12                                                   
 13 #include <kunit/test.h>                           
 14                                                   
 15 static void damon_dbgfs_test_str_to_ints(struc    
 16 {                                                 
 17         char *question;                           
 18         int *answers;                             
 19         int expected[] = {12, 35, 46};            
 20         ssize_t nr_integers = 0, i;               
 21                                                   
 22         question = "123";                         
 23         answers = str_to_ints(question, strlen    
 24         KUNIT_EXPECT_EQ(test, (ssize_t)1, nr_i    
 25         KUNIT_EXPECT_EQ(test, 123, answers[0])    
 26         kfree(answers);                           
 27                                                   
 28         question = "123abc";                      
 29         answers = str_to_ints(question, strlen    
 30         KUNIT_EXPECT_EQ(test, (ssize_t)1, nr_i    
 31         KUNIT_EXPECT_EQ(test, 123, answers[0])    
 32         kfree(answers);                           
 33                                                   
 34         question = "a123";                        
 35         answers = str_to_ints(question, strlen    
 36         KUNIT_EXPECT_EQ(test, (ssize_t)0, nr_i    
 37         kfree(answers);                           
 38                                                   
 39         question = "12 35";                       
 40         answers = str_to_ints(question, strlen    
 41         KUNIT_EXPECT_EQ(test, (ssize_t)2, nr_i    
 42         for (i = 0; i < nr_integers; i++)         
 43                 KUNIT_EXPECT_EQ(test, expected    
 44         kfree(answers);                           
 45                                                   
 46         question = "12 35 46";                    
 47         answers = str_to_ints(question, strlen    
 48         KUNIT_EXPECT_EQ(test, (ssize_t)3, nr_i    
 49         for (i = 0; i < nr_integers; i++)         
 50                 KUNIT_EXPECT_EQ(test, expected    
 51         kfree(answers);                           
 52                                                   
 53         question = "12 35 abc 46";                
 54         answers = str_to_ints(question, strlen    
 55         KUNIT_EXPECT_EQ(test, (ssize_t)2, nr_i    
 56         for (i = 0; i < 2; i++)                   
 57                 KUNIT_EXPECT_EQ(test, expected    
 58         kfree(answers);                           
 59                                                   
 60         question = "";                            
 61         answers = str_to_ints(question, strlen    
 62         KUNIT_EXPECT_EQ(test, (ssize_t)0, nr_i    
 63         kfree(answers);                           
 64                                                   
 65         question = "\n";                          
 66         answers = str_to_ints(question, strlen    
 67         KUNIT_EXPECT_EQ(test, (ssize_t)0, nr_i    
 68         kfree(answers);                           
 69 }                                                 
 70                                                   
 71 static void damon_dbgfs_test_set_targets(struc    
 72 {                                                 
 73         struct damon_ctx *ctx = dbgfs_new_ctx(    
 74         char buf[64];                             
 75                                                   
 76         /* Make DAMON consider target has no p    
 77         damon_select_ops(ctx, DAMON_OPS_PADDR)    
 78                                                   
 79         dbgfs_set_targets(ctx, 0, NULL);          
 80         sprint_target_ids(ctx, buf, 64);          
 81         KUNIT_EXPECT_STREQ(test, (char *)buf,     
 82                                                   
 83         dbgfs_set_targets(ctx, 1, NULL);          
 84         sprint_target_ids(ctx, buf, 64);          
 85         KUNIT_EXPECT_STREQ(test, (char *)buf,     
 86                                                   
 87         dbgfs_set_targets(ctx, 0, NULL);          
 88         sprint_target_ids(ctx, buf, 64);          
 89         KUNIT_EXPECT_STREQ(test, (char *)buf,     
 90                                                   
 91         dbgfs_destroy_ctx(ctx);                   
 92 }                                                 
 93                                                   
 94 static void damon_dbgfs_test_set_init_regions(    
 95 {                                                 
 96         struct damon_ctx *ctx = damon_new_ctx(    
 97         /* Each line represents one region in     
 98         char * const valid_inputs[] = {"1 10 2    
 99                 "1 10 20\n",                      
100                 "1 10 20\n0 39 59\n0 70 134\n     
101                 ""};                              
102         /* Reading the file again will show so    
103         char * const valid_expects[] = {"1 10     
104                 "1 10 20\n",                      
105                 "0 39 59\n0 70 134\n1 10 20\n1    
106                 ""};                              
107         char * const invalid_inputs[] = {"3 10    
108                 "1 10 20\n 1 14 26\n",            
109                 "0 10 20\n1 30 40\n 0 5 8"};      
110         char *input, *expect;                     
111         int i, rc;                                
112         char buf[256];                            
113                                                   
114         damon_select_ops(ctx, DAMON_OPS_PADDR)    
115                                                   
116         dbgfs_set_targets(ctx, 3, NULL);          
117                                                   
118         /* Put valid inputs and check the resu    
119         for (i = 0; i < ARRAY_SIZE(valid_input    
120                 input = valid_inputs[i];          
121                 expect = valid_expects[i];        
122                                                   
123                 rc = set_init_regions(ctx, inp    
124                 KUNIT_EXPECT_EQ(test, rc, 0);     
125                                                   
126                 memset(buf, 0, 256);              
127                 sprint_init_regions(ctx, buf,     
128                                                   
129                 KUNIT_EXPECT_STREQ(test, (char    
130         }                                         
131         /* Put invalid inputs and check the re    
132         for (i = 0; i < ARRAY_SIZE(invalid_inp    
133                 input = invalid_inputs[i];        
134                 pr_info("input: %s\n", input);    
135                 rc = set_init_regions(ctx, inp    
136                 KUNIT_EXPECT_EQ(test, rc, -EIN    
137                                                   
138                 memset(buf, 0, 256);              
139                 sprint_init_regions(ctx, buf,     
140                                                   
141                 KUNIT_EXPECT_STREQ(test, (char    
142         }                                         
143                                                   
144         dbgfs_set_targets(ctx, 0, NULL);          
145         damon_destroy_ctx(ctx);                   
146 }                                                 
147                                                   
148 static struct kunit_case damon_test_cases[] =     
149         KUNIT_CASE(damon_dbgfs_test_str_to_int    
150         KUNIT_CASE(damon_dbgfs_test_set_target    
151         KUNIT_CASE(damon_dbgfs_test_set_init_r    
152         {},                                       
153 };                                                
154                                                   
155 static struct kunit_suite damon_test_suite = {    
156         .name = "damon-dbgfs",                    
157         .test_cases = damon_test_cases,           
158 };                                                
159 kunit_test_suite(damon_test_suite);               
160                                                   
161 #endif /* _DAMON_TEST_H */                        
162                                                   
163 #endif  /* CONFIG_DAMON_KUNIT_TEST */             
164                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php