./platform/fmxx-psoc-db

add sram

将nor部分移植过来

# @name NOR read write test using dd
# @desc Perform NOR eraseall first, then do read write and then compare
# @requires  nor
# The partition number is specified in get_mtd_partition_number.sh

# erase_size as buffer size
NOR_S_FUNC_DD_RW_JFFS2_ERASESIZE_0001 source 'common.sh'; part=`get_mtd_partition_number.sh "nor"` || die "error getting mtd part number: $part"; size=`get_mtd_erase_size.sh "$part"` || die "error getting mtd erase size: $size"; blk_device_dd_readwrite_test.sh -f "jffs2" -b "$size" -c 10 -d "nor"

# partial mtd size as count
NOR_L_FUNC_DD_RW_JFFS2_BIGSIZE_0001 source 'common.sh'; part=`get_mtd_partition_number.sh "nor"` || die "error getting mtd part number: $part"; size=`get_mtd_size.sh "$part"` || die "error getting mtd size: $size"; size=$(( $size/MB )); do_cmd blk_device_dd_readwrite_test.sh -f "jffs2" -b "1M" -c "$size" -d "nor"

1.

->get_mtd_erase_size.sh

  ->get_mtd_biggest_part

    ->in mtd_common.sh  find_part_type

before

find_part_type() {
  PART=$1
  MTD_DEV="mtdblock$PART"
  if [[ -e /sys/class/mtd/mtd$PART/type ]]; then
    TYPE=`cat /sys/class/mtd/mtd$PART/type`
    if [[ $TYPE == 'nand' ]]; then
      PART_TYPE='nand'
    else
      if [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'flash'` ]]; then
        PART_TYPE="nor"
      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'qspi'` ]];then
        PART_TYPE="qspi"
      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'ospi'` ]];then
        PART_TYPE="qspi"
      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'spi'` ]];then
        if [[ `cat /proc/mtd |grep -E "mtd$PART |mtd${PART}: "|grep -i qspi ` ]];then
          PART_TYPE="qspi"
        else
          PART_TYPE="spi"
        fi
      else
        die "/sys/class/mtd/mtd$PART/device/driver doesn't exist"
      fi
    fi
  else
    die "/sys/class/mtd/mtd$PART/type doesn't exist"
  fi
  echo $PART_TYPE
}

after

find_part_type() {
  PART=$1
  MTD_DEV="mtdblock$PART"
  if [[ -e /sys/class/mtd/mtd$PART/type ]]; then
    TYPE=`cat /sys/class/mtd/mtd$PART/type`
    if [[ $TYPE == 'nand' ]]; then
      PART_TYPE='nand'
    else
      if [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'flash'` ]]; then
        PART_TYPE="nor"
      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'qspi'` ]];then
        PART_TYPE="qspi"
      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'ospi'` ]];then
        PART_TYPE="qspi"

elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'sram'` ]];then
        PART_TYPE="sram"

elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'spi'` ]];then
        if [[ `cat /proc/mtd |grep -E "mtd$PART |mtd${PART}: "|grep -i qspi ` ]];then
          PART_TYPE="qspi"
        else
          PART_TYPE="spi"
        fi
      else
        die "/sys/class/mtd/mtd$PART/device/driver doesn't exist"
      fi
    fi
  else
    die "/sys/class/mtd/mtd$PART/type doesn't exist"
  fi
  echo $PART_TYPE
}

2.

->blk_device_dd_readwrite_test.sh

  ->get_blk_device_node.sh

    ->get_device_type_map.sh

before

if [ $DEVICE_TYPE = "nand" ] || [ $DEVICE_TYPE = "nor" ] || [ $DEVICE_TYPE = "spi" ] || [ $DEVICE_TYPE = "qspi" ] ; then
    DEV_TYPE="mtd"
fi

after

if [ $DEVICE_TYPE = "nand" ] || [ $DEVICE_TYPE = "nor" ] || [ $DEVICE_TYPE = "spi" ] || [ $DEVICE_TYPE = "qspi" ] || [ $DEVICE_TYPE = "sram" ]; then
    DEV_TYPE="mtd"
fi

3.

->blk_device_dd_readwrite_test.sh

  ->blk_device_prepare_format.sh

    ->blk_device_do_mount.sh

before

case $DEV_TYPE in
        mtd)
            fs_to_try="jffs2:ubifs"
        ;;
        *)
            fs_to_try="vfat:ext3:ext4:ext2"
        ;;
    esac

after

case $DEV_TYPE in
        mtd)
            case $DEVICE_TYPE in
                sram)
                    fs_to_try="ramfs"
                ;;
                *)
                    fs_to_try="jffs2:ubifs"
                ;;
            esac
        ;;
        *)
            fs_to_try="vfat:ext3:ext4:ext2"
        ;;
    esac

4.

sram_perf_ramfs

before

#do_cmd blk_device_umount.sh -n "$DEV_NODE" -d "$DEVICE_TYPE" -f "$FS_TYPE"
  do_cmd blk_device_umount.sh -m "$MNT_POINT"
    do_cmd "echo 3 > /proc/sys/vm/drop_caches"

#do_cmd "mount -t $FS_TYPE -o $MNT_MODE $DEV_NODE $MNT_POINT"
  do_cmd blk_device_do_mount.sh -n "$DEV_NODE" -f "$FS_TYPE" -d "$DEVICE_TYPE" -o "$MNT_MODE" -m "$MNT_POINT"
    do_cmd filesystem_tests -read -file ${TEST_FILE} -buffer_size $BUFFER_SIZE -file_size $FILE_SIZE -performance
    do_cmd "sync"

after

#do_cmd blk_device_umount.sh -n "$DEV_NODE" -d "$DEVICE_TYPE" -f "$FS_TYPE"

if [ $FS_TYPE != "ramfs" ];then
        do_cmd blk_device_umount.sh -m "$MNT_POINT"
        do_cmd "echo 3 > /proc/sys/vm/drop_caches"

#do_cmd "mount -t $FS_TYPE -o $MNT_MODE $DEV_NODE $MNT_POINT"
        do_cmd blk_device_do_mount.sh -n "$DEV_NODE" -f "$FS_TYPE" -d "$DEVICE_TYPE" -o "$MNT_MODE" -m "$MNT_POINT"
    fi
    do_cmd filesystem_tests -read -file ${TEST_FILE} -buffer_size $BUFFER_SIZE -file_size $FILE_SIZE -performance
    do_cmd "sync"

原因是ramfs umount之后内容都会消失,所以在测试过程中不能umount,加一层判断。

ltp-ddt 加入sram 需要修改的部分的更多相关文章

  1. 接口自动化之unittest+ddt

    我在上一篇(https://www.cnblogs.com/wlyhy/p/10083318.html) 文章整理了unittest的模板,但在后续学习中,发现还有许多值得优化的地方.例如在我们设计测 ...

  2. python自动化使用 HtmlTestRunner 测试用例描述出现dict() -> new empty dictionary

    python自动化使用 HtmlTestRunner  测试用例描述出现dict() -> new empty dictionary这个问题,找了各种资料,发现是ddt.py 的问题 修改了dd ...

  3. ddt源码修改:HtmlTestRunner报告依据接口名显示用例名字

    背景是这样的: 自己写了一套接口自动化的框架,其中使用unittest + ddt + excel作为数据驱动模式的应用,使用HtmlTetstRunner来生成测试用例. 一切看起来很完美. 但是, ...

  4. Python 修改在使用ddt时测试报告默认显示用例名称与预期不符

    正常在不使用ddt时,在方法下添加注释,即可作为用例描述("""用例描述""") @BeautifulReport.add_test_img ...

  5. Python 中使用 ddt 来进行数据驱动,批量执行用例,修改ddt代码

    1. 什么是数据驱动? 使用数据驱动有什么好处? 用例执行是靠数据来驱动的,每条测试用例除了测试数据不一样意外,所有的用例代码都是一样的,为了使用例批量执行,我们会使用数据驱动的思想来批量执行测试用例 ...

  6. LTP随笔——本地调用ltp之ltp4j

    关于ltp本地调用的相关参考请见LTP的Git项目:https://github.com/HIT-SCIR 以下以/home/lion/Desktop路径为例下面教程中出现的具体路径以你实际配置的为准 ...

  7. ZH奶酪:自然语言处理工具LTP语言云调用方法

    前言 LTP语言云平台 不支持离线调用: 支持分词.词性标注.命名实体识别.依存句法分析.语义角色标注: 不支持自定义词表,但是你可以先用其他支持自定义分词的工具(例如中科院的NLPIR)把文本进行分 ...

  8. 编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码

    转自:编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码 JDK:java version “1.8.0_31”Java(TM) SE Runtime Environment ( ...

  9. ROM、RAM、DRAM、SRAM和FLASH区别

    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写. ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都 ...

随机推荐

  1. SpringBoot 集成 Spring Session

    SpringBoot 集成 Spring Session 应该讲解清楚,为什么要使用 Redis 进行 Session 的管理. Session 复制又是什么概念. Spring Session 在汪 ...

  2. SQLSTATE[HY000] [2002] No such file or directory

    正常的解决办法.. 只需将laravel配置文件中的host 127.0.0.1改成localhost就可以: 'mysql' => array(            'driver'    ...

  3. 转:KVM使用NAT联网并为VM配置iptables端口转发,kvmiptables

    转载地址:https://www.ilanni.com/?p=7016 在前面的文章中,我们介绍KVM的虚拟机(以下简称VM)都是通过桥接方式进行联网的. 本篇文章我们来介绍KVM的VM通过NAT方式 ...

  4. React-Native 之 GD (十)Android启动页面 及 模态方式跳转

    1.Android启动页面 思路:新建一个组件作为 Android 的启动页,index.android.js 的初始化窗口改为 Android启动页,设置定时器,使其在1.5秒后自动跳转到 Main ...

  5. qcom Android Camera【转】

    本文转载自:http://blog.csdn.net/Wilsonboliu/article/details/54949196 1.总体架构 Android Camera 框架从整体上看是一个 cli ...

  6. docker学习与应用

    概要 众所周知,Docker是当前非常火的虚拟化容器技术,对于它的优势以及使用场景网上的资料非常多,这里我推荐大家去这个网站去详细学习docker. 我这里就写一下作为一名后端开发程序员,自己学习do ...

  7. (转)IDataGridViewEditingControl 接口 作用

    本文转载自:http://blog.csdn.net/zx13525079024/article/details/4814575 IDataGridViewEditingControl 接口 定义承载 ...

  8. Delphi XE2 之 FireMonkey 入门(24) - 数据绑定: TBindingsList: TBindExpression.Direction

    在学习 BindingSource 属性时, 可以让两个控件互为绑定源; TBindExpression 对应的功能是 Direction 属性. 先在窗体上添加 Edit1.Edit2.Bindin ...

  9. Java面试中hashCode()与equals(Object obj)方法关系的准确回答

    原文地址: https://blog.csdn.net/qq_19260029/article/details/77917925 hashCode()与equals(Object obj)都是Java ...

  10. try...catch语句

    程序的异常:Throwable 严重问题Error我们不处理,这种问题一般都是很严重的,比如内存溢出 问题Exception 编译期问题不是RuntimeException的异常必须进行处理,如果不处 ...