Home | History | Annotate | Download | only in findUsages
      1 package org.jf.smalidea.findUsages;
      2 
      3 import com.intellij.usages.impl.rules.UsageType;
      4 
      5 public class FieldUsageTypeTest extends UsageTypeTest {
      6     public FieldUsageTypeTest() {
      7         super(new SmaliUsageTypeProvider());
      8     }
      9 
     10     public void testFieldUsageTypes() throws Exception {
     11         doTest("blah.smali", "" +
     12                         ".class public Lblah;\n" +
     13                         ".super Ljava/lang/Object;\n" +
     14                         "\n" +
     15                         ".annotation runtime Lblah;\n" +
     16                         "    element = Lblah;->bl<ref:1>ah:Lblah;\n" +
     17                         "    element2 = .enum Lblah;->bl<ref:2>ah:Lblah;\n" +
     18                         ".end annotation\n" +
     19                         "\n" +
     20                         ".field public blah:Lblah;\n" +
     21                         "\n" +
     22                         ".method public blah(Lblah;)Lblah;\n" +
     23                         "    .registers 2\n" +
     24                         "\n" +
     25                         "    iget v0, v0, Lblah;->bl<ref:3>ah:Lblah;\n" +
     26                         "    iget-object v0, v0, Lblah;->bl<ref:4>ah:Lblah;\n" +
     27                         "    iget-byte v0, v0, Lblah;->bl<ref:5>ah:Lblah;\n" +
     28                         "    iget-char v0, v0, Lblah;->bl<ref:6>ah:Lblah;\n" +
     29                         "    iget-object v0, v0, Lblah;->bl<ref:7>ah:Lblah;\n" +
     30                         "    iget-object-volatile v0, v0, Lblah;->bl<ref:8>ah:Lblah;\n" +
     31                         "    iget-short v0, v0, Lblah;->bl<ref:9>ah:Lblah;\n" +
     32                         "    iget-volatile v0, v0, Lblah;->bl<ref:10>ah:Lblah;\n" +
     33                         "    iget-wide v0, v0, Lblah;->bl<ref:11>ah:Lblah;\n" +
     34                         "    iget-wide-volatile v0, v0, Lblah;->bl<ref:12>ah:Lblah;\n" +
     35                         "    sget v0, Lblah;->bl<ref:13>ah:Lblah;\n" +
     36                         "    sget-boolean v0, Lblah;->bl<ref:14>ah:Lblah;\n" +
     37                         "    sget-byte v0, Lblah;->bl<ref:15>ah:Lblah;\n" +
     38                         "    sget-char v0, Lblah;->bl<ref:16>ah:Lblah;\n" +
     39                         "    sget-object v0, Lblah;->bl<ref:17>ah:Lblah;\n" +
     40                         "    sget-object-volatile v0, Lblah;->bl<ref:18>ah:Lblah;\n" +
     41                         "    sget-short v0, Lblah;->bl<ref:19>ah:Lblah;\n" +
     42                         "    sget-volatile v0, Lblah;->bl<ref:20>ah:Lblah;\n" +
     43                         "    sget-wide v0, Lblah;->bl<ref:21>ah:Lblah;\n" +
     44                         "    sget-wide-volatile v0, Lblah;->bl<ref:22>ah:Lblah;\n" +
     45                         "    \n" +
     46                         "    iput v0, v0, Lblah;->bl<ref:23>ah:Lblah;\n" +
     47                         "    iput-object v0, v0, Lblah;->bl<ref:24>ah:Lblah;\n" +
     48                         "    iput-byte v0, v0, Lblah;->bl<ref:25>ah:Lblah;\n" +
     49                         "    iput-char v0, v0, Lblah;->bl<ref:26>ah:Lblah;\n" +
     50                         "    iput-object v0, v0, Lblah;->bl<ref:27>ah:Lblah;\n" +
     51                         "    iput-object-volatile v0, v0, Lblah;->bl<ref:28>ah:Lblah;\n" +
     52                         "    iput-short v0, v0, Lblah;->bl<ref:29>ah:Lblah;\n" +
     53                         "    iput-volatile v0, v0, Lblah;->bl<ref:30>ah:Lblah;\n" +
     54                         "    iput-wide v0, v0, Lblah;->bl<ref:31>ah:Lblah;\n" +
     55                         "    iput-wide-volatile v0, v0, Lblah;->bl<ref:32>ah:Lblah;\n" +
     56                         "    sput v0, Lblah;->bl<ref:33>ah:Lblah;\n" +
     57                         "    sput-boolean v0, Lblah;->bl<ref:34>ah:Lblah;\n" +
     58                         "    sput-byte v0, Lblah;->bl<ref:35>ah:Lblah;\n" +
     59                         "    sput-char v0, Lblah;->bl<ref:36>ah:Lblah;\n" +
     60                         "    sput-object v0, Lblah;->bl<ref:37>ah:Lblah;\n" +
     61                         "    sput-object-volatile v0, Lblah;->bl<ref:38>ah:Lblah;\n" +
     62                         "    sput-short v0, Lblah;->bl<ref:39>ah:Lblah;\n" +
     63                         "    sput-volatile v0, Lblah;->bl<ref:40>ah:Lblah;\n" +
     64                         "    sput-wide v0, Lblah;->bl<ref:41>ah:Lblah;\n" +
     65                         "    sput-wide-volatile v0, Lblah;->bl<ref:42>ah:Lblah;\n" +
     66                         "\n" +
     67                         "    throw-verification-error generic-error, Lblah;->bl<ref:43>ah:Lblah;\n" +
     68                         "\n" +
     69                         "    return-void\n" +
     70                         ".end method\n",
     71                 1, SmaliUsageTypeProvider.LITERAL,
     72                 2, SmaliUsageTypeProvider.LITERAL,
     73                 3, UsageType.READ,
     74                 4, UsageType.READ,
     75                 5, UsageType.READ,
     76                 6, UsageType.READ,
     77                 7, UsageType.READ,
     78                 8, UsageType.READ,
     79                 9, UsageType.READ,
     80                 10, UsageType.READ,
     81                 11, UsageType.READ,
     82                 12, UsageType.READ,
     83                 13, UsageType.READ,
     84                 14, UsageType.READ,
     85                 15, UsageType.READ,
     86                 16, UsageType.READ,
     87                 17, UsageType.READ,
     88                 18, UsageType.READ,
     89                 19, UsageType.READ,
     90                 20, UsageType.READ,
     91                 21, UsageType.READ,
     92                 22, UsageType.READ,
     93                 23, UsageType.WRITE,
     94                 24, UsageType.WRITE,
     95                 25, UsageType.WRITE,
     96                 26, UsageType.WRITE,
     97                 27, UsageType.WRITE,
     98                 28, UsageType.WRITE,
     99                 29, UsageType.WRITE,
    100                 30, UsageType.WRITE,
    101                 31, UsageType.WRITE,
    102                 32, UsageType.WRITE,
    103                 33, UsageType.WRITE,
    104                 34, UsageType.WRITE,
    105                 35, UsageType.WRITE,
    106                 36, UsageType.WRITE,
    107                 37, UsageType.WRITE,
    108                 38, UsageType.WRITE,
    109                 39, UsageType.WRITE,
    110                 40, UsageType.WRITE,
    111                 41, UsageType.WRITE,
    112                 42, UsageType.WRITE,
    113                 43, SmaliUsageTypeProvider.VERIFICATION_ERROR);
    114     }
    115 }
    116