--- /dev/null
+<testcase>
+ <summary>This test case is used to test the options "--include-src --logfile=fs_src.log -k fs_cache -A riscv64". All these options are used to test whether the image will be generated according to the given values.
+ </summary>
+ <fixtures>
+ <copy src="ks_files/riscv64.ks" />
+ <copy src="conf/repo_config.json"/>
+ <copy src="py_scripts/repo_parse.py"/>
+ </fixtures>
+ <steps>
+ <![CDATA[
+python3 repo_parse.py riscv64.ks repo_config.json riscv64-profile
+losetup_path=$(sudo which losetup)
+sudo $losetup_path -a
+loop_used_before=$(sudo $losetup_path -a | wc -l)
+enforce_path=$(sudo which setenforce || true)
+if [ ! -z $enforce_path ];then
+ sudo $enforce_path 0 || true
+fi
+sudo mic --non-interactive -d -v cr fs riscv64.ks --include-src --logfile=fs_src.log -k fs_cache -A riscv64 -o my_output
+test -d ./my_output
+test -f fs_src.log
+grep "Finished" fs_src.log
+sudo $losetup_path -a
+loop_used_after=$(sudo $losetup_path -a | wc -l)
+if [ "$loop_used_before" -ne "$loop_used_after" ];then
+ echo "Number of loop devices is not the same with previous number."
+ exit 1
+fi
+test -d fs_cache
+ls ./my_output | grep 'riscv64*'
+ls fs_cache/packages/Tizen-base | grep rpm
+]]>
+ </steps>
+ <teardown>
+ <![CDATA[
+echo "clean space...."
+sudo rm -rf fs_cache
+sudo rm fs_src.log
+sudo rm -rf my_output
+]]>
+ </teardown>
+</testcase>
--- /dev/null
+<testcase>
+ <summary>create loop image with riscv64 arch, and options is
+ "--local-pkgs-path=./rpm --record-pkgs=name,content,license --taring-to=@NAME@.tar --compress-image=bz2"</summary>
+ <fixtures>
+ <copy src="ks_files/riscv64.ks" />
+ <copy src="conf/repo_config.json"/>
+ <copy src="py_scripts/repo_parse.py"/>
+ <copydir src="rpm/" />
+ </fixtures>
+ <steps><![CDATA[
+python3 repo_parse.py riscv64.ks repo_config.json riscv64-no-source-profile
+losetup_path=$(sudo which losetup)
+sudo $losetup_path -a
+loop_used_before=$(sudo $losetup_path -a | wc -l)
+enforce_path=$(sudo which setenforce || true)
+if [ ! -z $enforce_path ];then
+ sudo $enforce_path 0 || true
+fi
+sudo mic --non-interactive -d -v cr loop -A=riscv64 riscv64.ks \
+ --local-pkgs-path=./rpm \
+ --record-pkgs=name,content,license,vcs \
+ --taring-to=@NAME@.tar \
+ --compress-image=bz2 \
+ --logfile=log.file
+
+grep "Finished" log.file
+
+sudo $losetup_path -a
+loop_used_after=$(sudo $losetup_path -a | wc -l)
+if [ "$loop_used_before" -ne "$loop_used_after" ];then
+ echo "Number of loop devices is not the same with previous number."
+ exit 1
+fi
+grep 'Marking .*.rpm to be installed' log.file
+
+test -f ./mic-output/riscv64*.tar
+
+sudo tar -xvf ./mic-output/riscv64*.tar -C ./mic-output
+
+sudo test -f ./mic-output/platform.img.bz2
+
+sudo bunzip2 ./mic-output/platform.img.bz2
+
+sudo test -f ./mic-output/platform.img
+sudo ls ./mic-output | grep 'riscv64.*.packages'
+sudo ls ./mic-output | grep 'riscv64.*.license'
+sudo ls ./mic-output | grep 'riscv64.*.files'
+]]></steps>
+ <teardown><![CDATA[
+echo "clean space...."
+
+sudo rm log.file
+
+sudo rm -rf ./mic-output
+]]></teardown>
+</testcase>
--- /dev/null
+<testcase>
+ <summary>create loop image with riscv64 arch, the option is
+"--logfile=/custome/riscv64.log -c conf/mic.conf --shrink --release=latest --pkgmgr=zypp"</summary>
+ <fixtures>
+ <copy src="ks_files/riscv64.ks" />
+ <copy src="conf/mic.conf" />
+ <copy src="conf/repo_config.json"/>
+ <copy src="py_scripts/repo_parse.py"/>
+ </fixtures>
+ <steps><![CDATA[
+python3 repo_parse.py riscv64.ks repo_config.json riscv64-no-source-profile
+losetup_path=$(sudo which losetup)
+sudo $losetup_path -a
+loop_used_before=$(sudo $losetup_path -a | wc -l)
+# on some platforms, the command "setenforce 0" is needed to be executed,
+# on some other platforms, it's not needed to execute this command or
+# no related package is installed, so we added "||"
+enforce_path=$(sudo which setenforce || true)
+if [ ! -z $enforce_path ];then
+ sudo $enforce_path 0 || true
+fi
+sudo mic --non-interactive -d -v cr loop -A=riscv64 riscv64.ks --logfile=/custome/riscv64.log -c mic.conf --shrink --release=latest --pkgmgr=zypp
+
+sudo test -f /custome/riscv64.log
+
+grep "Finished" /custome/riscv64.log
+
+sudo $losetup_path -a
+loop_used_after=$(sudo $losetup_path -a | wc -l)
+if [ "$loop_used_before" -ne "$loop_used_after" ];then
+ echo "Number of loop devices is not the same with previous number."
+ exit 1
+fi
+test -f my_mic-output/latest/images/riscv64/MD5SUMS
+test -f my_mic-output/latest/images/riscv64/boot.img
+test -f my_mic-output/latest/images/riscv64/platform.img
+test -f my_mic-output/latest/images/riscv64/latest_riscv64.ks
+test -f my_mic-output/latest/images/riscv64/latest_riscv64.packages
+test -f my_mic-output/latest/images/riscv64/latest_riscv64.xml
+]]></steps>
+ <teardown><![CDATA[
+echo "clean space...."
+
+sudo rm /custome/riscv64.log
+
+sudo rm -rf my_mic-output
+]]></teardown>
+</testcase>
--- /dev/null
+<testcase>
+ <summary>create loop image with arch riscv64 and --pack-to is .bz2</summary>
+ <fixtures>
+ <copy src="ks_files/handset_blackbay_riscv64.ks" />
+ <copy src="conf/repo_config.json"/>
+ <copy src="py_scripts/repo_parse.py"/>
+ </fixtures>
+ <steps><![CDATA[
+python3 repo_parse.py handset_blackbay_riscv64.ks repo_config.json riscv64-no-source-profile
+losetup_path=$(sudo which losetup)
+sudo $losetup_path -a
+loop_used_before=$(sudo $losetup_path -a | wc -l)
+(! sudo mic -d -v cr loop -A=riscv64 handset_blackbay_riscv64.ks --pack-to=@NAME@.bz2 --logfile=mic.log)
+grep 'Not supported archive file format' mic.log
+sudo $losetup_path -a
+loop_used_after=$(sudo $losetup_path -a | wc -l)
+if [ "$loop_used_before" -ne "$loop_used_after" ];then
+ echo "Number of loop devices is not the same with previous number."
+ exit 1
+fi
+]]></steps>
+ <teardown><![CDATA[
+echo "cleaning..."
+sudo rm -rf ./mic-output
+sudo rm mic.log
+echo "finish cleaning..."
+]]></teardown>
+</testcase>
--- /dev/null
+<testcase>
+ <summary>create loop image with arch riscv64 and --pack-to is .tar.bz2</summary>
+ <fixtures>
+ <copy src="ks_files/handset_blackbay_riscv64.ks" />
+ <copy src="conf/repo_config.json"/>
+ <copy src="py_scripts/repo_parse.py"/>
+ </fixtures>
+ <steps><![CDATA[
+python3 repo_parse.py handset_blackbay_riscv64.ks repo_config.json riscv64-no-source-profile
+losetup_path=$(sudo which losetup)
+sudo $losetup_path -a
+loop_used_before=$(sudo $losetup_path -a | wc -l)
+sudo mic -d -v cr loop -A=riscv64 handset_blackbay_riscv64.ks --pack-to=@NAME@.tar.bz --logfile=mic.log
+grep 'Finished' mic.log
+test -f ./mic-output/handset_blackbay_riscv64*.tar.bz
+sudo $losetup_path -a
+loop_used_after=$(sudo $losetup_path -a | wc -l)
+if [ "$loop_used_before" -ne "$loop_used_after" ];then
+ echo "Number of loop devices is not the same with previous number."
+ exit 1
+fi
+sudo bunzip2 -d ./mic-output/handset_blackbay_riscv64*.tar.bz
+sudo tar -xvf ./mic-output/handset_blackbay_riscv64*.tar -C ./mic-output
+sudo test -e ./mic-output/platform.img
+]]></steps>
+ <teardown><![CDATA[
+echo "cleaning..."
+sudo rm mic.log
+sudo rm -rf ./mic-output
+echo "finish cleaning..."
+]]></teardown>
+</testcase>
--- /dev/null
+<testcase>
+ <summary>create loop image with arch riscv64 and --pack-to is .tar.gz</summary>
+ <fixtures>
+ <copy src="ks_files/handset_blackbay_riscv64.ks" />
+ <copy src="conf/repo_config.json"/>
+ <copy src="py_scripts/repo_parse.py"/>
+ </fixtures>
+ <steps><![CDATA[
+python3 repo_parse.py handset_blackbay_riscv64.ks repo_config.json riscv64-no-source-profile
+losetup_path=$(sudo which losetup)
+sudo $losetup_path -a
+loop_used_before=$(sudo $losetup_path -a | wc -l)
+sudo mic -d -v cr loop -A=riscv64 handset_blackbay_riscv64.ks --pack-to=@NAME@.tar.gz --logfile=mic.log
+grep 'Finished' mic.log
+test -f ./mic-output/handset_blackbay_riscv64*.tar.gz
+sudo $losetup_path -a
+loop_used_after=$(sudo $losetup_path -a | wc -l)
+if [ "$loop_used_before" -ne "$loop_used_after" ];then
+ echo "Number of loop devices is not the same with previous number."
+ exit 1
+fi
+sudo gunzip ./mic-output/handset_blackbay_riscv64*.tar.gz
+sudo tar -xvf ./mic-output/handset_blackbay_riscv64*.tar -C ./mic-output
+sudo test -e ./mic-output/platform.img
+]]></steps>
+ <teardown><![CDATA[
+echo "cleaning..."
+sudo rm -rf ./mic-output
+sudo rm mic.log
+echo "finish cleaning..."
+]]></teardown>
+</testcase>
--- /dev/null
+<testcase>
+ <summary>create loop image with arch riscv64 and --pack-to is @NAME@.tar</summary>
+ <fixtures>
+ <copy src="ks_files/handset_blackbay_riscv64.ks" />
+ <copy src="conf/repo_config.json"/>
+ <copy src="py_scripts/repo_parse.py"/>
+ </fixtures>
+ <steps><![CDATA[
+python3 repo_parse.py handset_blackbay_riscv64.ks repo_config.json riscv64-no-source-profile
+losetup_path=$(sudo which losetup)
+sudo $losetup_path -a
+loop_used_before=$(sudo $losetup_path -a | wc -l)
+sudo mic -d -v cr loop -A=riscv64 handset_blackbay_riscv64.ks --pack-to=@NAME@.tar --logfile=mic.log
+grep 'Finished' mic.log
+test -f ./mic-output/handset_blackbay_riscv64*.tar
+sudo $losetup_path -a
+loop_used_after=$(sudo $losetup_path -a | wc -l)
+if [ "$loop_used_before" -ne "$loop_used_after" ];then
+ echo "Number of loop devices is not the same with previous number."
+ exit 1
+fi
+sudo tar -xvf ./mic-output/handset_blackbay_riscv64*.tar -C ./mic-output
+sudo test -f ./mic-output/platform.img
+]]></steps>
+ <teardown><![CDATA[
+echo "cleaning..."
+sudo rm -rf ./mic-output
+sudo rm mic.log
+echo "finish cleaning..."
+]]></teardown>
+</testcase>
--- /dev/null
+<testcase>
+ <summary>create loop image with arch riscv64 and --pack-to is .zip</summary>
+ <fixtures>
+ <copy src="ks_files/handset_blackbay_riscv64.ks" />
+ <copy src="conf/repo_config.json"/>
+ <copy src="py_scripts/repo_parse.py"/>
+ </fixtures>
+ <steps><![CDATA[
+python3 repo_parse.py handset_blackbay_riscv64.ks repo_config.json riscv64-no-source-profile
+losetup_path=$(sudo which losetup)
+sudo $losetup_path -a
+loop_used_before=$(sudo $losetup_path -a | wc -l)
+sudo mic -d -v cr loop -A=riscv64 handset_blackbay_riscv64.ks \
+ --pack-to=@NAME@.zip \
+ --logfile=mic.log
+grep 'Resizing filesystem' mic.log
+grep 'Zipping files to' mic.log
+grep 'Finished' mic.log
+test -f ./mic-output/handset_blackbay_riscv64*.zip
+sudo $losetup_path -a
+loop_used_after=$(sudo $losetup_path -a | wc -l)
+if [ "$loop_used_before" -ne "$loop_used_after" ];then
+ echo "Number of loop devices is not the same with previous number."
+ exit 1
+fi
+sudo unzip ./mic-output/handset_blackbay_riscv64*.zip -d ./mic-output
+test -e ./mic-output/platform.img
+sudo mic chroot ./mic-output/platform.img -c ls
+]]></steps>
+ <teardown><![CDATA[
+echo "cleaning..."
+sudo rm -rf ./mic-output
+sudo rm mic.log
+echo "finish cleaning..."
+]]></teardown>
+</testcase>
--- /dev/null
+<testcase>
+ <summary></summary>
+ <fixtures>
+ <copy src="ks_files/handset_blackbay_riscv64.ks" />
+ <copy src="conf/repo_config.json"/>
+ <copy src="py_scripts/repo_parse.py"/>
+ </fixtures>
+ <steps><![CDATA[
+python3 repo_parse.py handset_blackbay_riscv64.ks repo_config.json riscv64-no-source-profile
+losetup_path=$(sudo which losetup)
+sudo $losetup_path -a
+loop_used_before=$(sudo $losetup_path -a | wc -l)
+sudo mic --non-interactive cr loop -A=riscv64 handset_blackbay_riscv64.ks --release=latest
+grep "Finished" ./mic-output/latest/images/handset_blackbay_riscv64*/latest_handset_blackbay_riscv64.log
+sudo test -f ./mic-output/latest/images/handset_blackbay_riscv64*/platform.img
+sudo $losetup_path -a
+loop_used_after=$(sudo $losetup_path -a | wc -l)
+if [ "$loop_used_before" -ne "$loop_used_after" ];then
+ echo "Number of loop devices is not the same with previous number."
+ exit 1
+fi
+sudo test -f ./mic-output/latest/images/handset_blackbay_riscv64*/MD5SUMS
+sudo test -f ./mic-output/latest/images/handset_blackbay_riscv64*/latest_handset_blackbay_riscv64.packages
+sudo test -f ./mic-output/latest/images/handset_blackbay_riscv64*/latest_handset_blackbay_riscv64.ks
+sudo test -f ./mic-output/latest/images/handset_blackbay_riscv64*/latest_handset_blackbay_riscv64.xml
+]]></steps>
+ <teardown><![CDATA[
+echo "cleaning..."
+sudo rm -rf ./mic-output
+echo "finish cleaning..."
+]]></teardown>
+</testcase>
--- /dev/null
+<testcase>
+ <summary>create loop image with riscv64 arch and --runtime is bootstrap</summary>
+ <fixtures>
+ <copy src="ks_files/handset_blackbay_riscv64.ks" />
+ <copy src="conf/repo_config.json"/>
+ <copy src="py_scripts/repo_parse.py"/>
+ </fixtures>
+ <steps><![CDATA[
+python3 repo_parse.py handset_blackbay_riscv64.ks repo_config.json riscv64-no-source-profile
+losetup_path=$(sudo which losetup)
+sudo $losetup_path -a
+loop_used_before=$(sudo $losetup_path -a | wc -l)
+sudo mic -d -v cr loop -A=riscv64 handset_blackbay_riscv64.ks \
+ --runtime=bootstrap \
+ --logfile=mic.log
+grep 'Start mic in bootstrap' mic.log
+grep 'Finished' mic.log
+test -f ./mic-output/platform.img
+sudo $losetup_path -a
+loop_used_after=$(sudo $losetup_path -a | wc -l)
+if [ "$loop_used_before" -ne "$loop_used_after" ];then
+ echo "Number of loop devices is not the same with previous number."
+ exit 1
+fi
+]]></steps>
+ <teardown><![CDATA[
+echo "cleaning..."
+sudo rm mic.log
+sudo rm -rf ./mic-output
+echo "finish cleaning..."
+]]></teardown>
+</testcase>
{
+ "riscv64-profile": [
+ "repo --name=Tizen-base --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Base-RISCV/latest/repos/standard/packages/ --save --gpgkey=0 --ssl_verify=no",
+ "repo --name=Tizen-main --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Unified-RISCV/latest/repos/standard/packages/ --save --gpgkey=0 --ssl_verify=no",
+ "repo --name=Tizen-base-source --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Base-RISCV/latest/repos/standard/source/ --save --source --gpgkey=0 --ssl_verify=no",
+ "repo --name=Tizen-main-source --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Unified-RISCV/latest/repos/standard/source/ --save --source --gpgkey=0 --ssl_verify=no"
+ ],
+ "riscv64-no-source-profile": [
+ "repo --name=Tizen-base --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Base-RISCV/latest/repos/standard/packages/ --save --gpgkey=0 --ssl_verify=no",
+ "repo --name=Tizen-main --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Unified-RISCV/latest/repos/standard/packages/ --save --gpgkey=0 --ssl_verify=no"
+ ],
"arm64-profile": [
"repo --name=Tizen-main --baseurl=http://10.113.136.109/repo/aarch64/ --save --gpgkey=0 --ssl_verify=no"
],
--- /dev/null
+# -*-mic2-options-*- -f loop --pack-to=@NAME@-rs.zip -*-mic2-options-*-
+
+lang en_US.UTF-8
+keyboard us
+timezone --utc America/Los_Angeles
+
+part / --size 848 --ondisk sda --fstype=ext3 --label platform
+
+rootpw tizen
+bootloader --timeout=0 --append="rootdelay=5 security=none"
+
+desktop --autologinuser=tizen
+user --name tizen --groups audio,video --password 'tizen'
+
+repo --name=Tizen-base --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Base-RISCV/latest/repos/standard/packages/ --save --gpgkey=0 --ssl_verify=no
+repo --name=Tizen-main --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Unified-RISCV/latest/repos/standard/packages/ --save --gpgkey=0 --ssl_verify=no
+repo --name=Tizen-base-source --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Base-RISCV/latest/repos/standard/source/ --save --source --gpgkey=0 --ssl_verify=no
+repo --name=Tizen-main-source --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Unified-RISCV/latest/repos/standard/source/ --save --source --gpgkey=0 --ssl_verify=no
+
+%packages
+coreutils
+bash
+rpm
+%end
+
+%attachment
+preos-runtime
+bootstub-bb
+/boot/cmdline
+/boot/vmlinuz-*
+%end
+
+%post
+# Set environment for launchpad daemon. Fix TDIST-264
+cat > /etc/sysconfig/launchpad <<EOF
+DISPLAY=:0
+EOF
+%end
+
+%post --nochroot
+
+%end
--- /dev/null
+# -*-mic2-options-*- -f loop -A riscv64 --pack-to=@NAME@.tar.gz -*-mic2-options-*-
+
+lang en_US.UTF-8
+keyboard us
+timezone --utc America/Los_Angeles
+
+part /boot --size=64 --ondisk mmcblk0p --fstype=ext4 --label=boot
+part / --size 848 --ondisk sda --fstype=ext3 --label platform
+
+rootpw tizen
+bootloader --timeout=0 --append="rootdelay=5 security=none"
+
+desktop --autologinuser=tizen
+user --name tizen --groups audio,video --password 'tizen'
+
+repo --name=Tizen-base --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Base-RISCV/latest/repos/standard/packages/ --save --gpgkey=0 --ssl_verify=no
+repo --name=Tizen-main --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Unified-RISCV/latest/repos/standard/packages/ --save --gpgkey=0 --ssl_verify=no
+repo --name=Tizen-base-source --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Base-RISCV/latest/repos/standard/source/ --save --source --gpgkey=0 --ssl_verify=no
+repo --name=Tizen-main-source --baseurl=http://download.tizen.org/releases/milestone/TIZEN/Tizen/Tizen-Unified-RISCV/latest/repos/standard/source/ --save --source --gpgkey=0 --ssl_verify=no
+
+%packages
+coreutils
+bash
+rpm
+%end
+
+%attachment
+preos-runtime
+bootstub-bb
+/boot/cmdline
+/boot/vmlinuz-*
+%end
+
+%post
+# Set environment for launchpad daemon. Fix TDIST-264
+cat > /etc/sysconfig/launchpad <<EOF
+DISPLAY=:0
+EOF
+%end
+
+%post --nochroot
+
+%end