#!/bin/bash

# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>

[ -f testing.sh ] && . testing.sh

# 'dd' command, stderr prints redirecting to /dev/null
opt="2>/dev/null"

#testing "name" "command" "result" "infile" "stdin"

# Test suffixed number parsing; `count` is representative.
testing "count=2" "dd if=input count=2 ibs=1 $opt" "hi" "high\n" ""
testing "count= 2" "dd if=input 'count= 2' ibs=1 $opt" "hi" "high\n" ""
SKIP_HOST=1 testing "count=0x2" "dd if=input 'count=0x2' ibs=1 $opt" "hi" \
  "high\n" ""
testing "count=-2" "dd if=input 'count=-2' ibs=1 2>/dev/null || echo errored" "errored\n" "" ""

testing "if=(file)" "dd if=input $opt" "I WANT\n" "I WANT\n" ""
testing "of=(file)" "dd of=file $opt && cat file" "I WANT\n" "" "I WANT\n"
testing "if=file of=file" "dd if=input of=foo $opt && cat foo && rm -f foo" \
  "I WANT\n" "I WANT\n" ""
testing "if=file | dd of=file" "dd if=input $opt | dd of=foo $opt &&
   cat foo && rm -f foo" "I WANT\n" "I WANT\n" ""
testing "(stdout)" "dd $opt" "I WANT\n" "" "I WANT\n"
testing "sync,noerror" \
  "dd if=input of=outFile seek=8860 bs=1M conv=sync,noerror $opt &&
   stat -c \"%s\" outFile && rm -f outFile" "9291431936\n" "I WANT\n" ""
testing "if=file of=(null)" \
  "dd if=input of=/dev/null $opt && echo 'yes'" "yes\n" "I WANT\n" ""
testing "with if of bs" \
  "dd if=/dev/zero of=sda.txt bs=512 count=1 $opt &&
   stat -c '%s' sda.txt && rm -f sda.txt" "512\n" "" ""
testing "with if of ibs obs" \
  "dd if=/dev/zero of=sda.txt ibs=512 obs=256 count=1 $opt &&
   stat -c '%s' sda.txt && rm -f sda.txt" "512\n" "" ""
testing "with if of ibs obs count" \
  "dd if=/dev/zero of=sda.txt ibs=512 obs=256 count=3 $opt &&
   stat -c '%s' sda.txt && rm -f sda.txt" "1536\n" "" ""

ln -s input softlink
testing "if=softlink" "dd if=softlink $opt" "I WANT\n" "I WANT\n" ""
unlink softlink

ln -s file softlink
testing "if=file of=softlink" "dd if=input of=softlink $opt &&
   [ -f file -a -L softlink ] && cat softlink" "I WANT\n" "I WANT\n" ""
unlink softlink && rm -f file

testing "if=file of=file (same file)" "dd if=input of=input $opt &&
   [ -f input ] && cat input && echo 'yes'" "yes\n" "I WANT\n" ""
testing "same file notrunc" \
  "dd if=input of=input conv=notrunc $opt && cat input" \
  "I WANT\n" "I WANT\n" ""

testing "with ibs obs bs" "dd ibs=2 obs=5 bs=9 $opt" "I WANT\n" "" "I WANT\n"
testing "with ibs obs bs if" "dd ibs=2 obs=5 bs=9 if=input $opt" \
  "I WANT\n" "I WANT\n" ""

testing "with ibs obs count" "dd ibs=1 obs=1 count=1 $opt" "I" "" "I WANT\n"
testing "with ibs obs count if" "dd ibs=1 obs=1 count=3 if=input $opt" \
  "I W" "I WANT\n" ""

testing "with count" "dd count=1 $opt" "I WANT\n" "" "I WANT\n"
testing "with count if" "dd count=1 if=input $opt" "I WANT\n" "I WANT\n" ""

testing "with skip" "dd skip=0 $opt" "I WANT\n" "" "I WANT\n"
testing "with skip if" "dd skip=0 if=input $opt" "I WANT\n" "I WANT\n" ""

testing "with seek" "dd seek=0 $opt" "I WANT\n" "" "I WANT\n"
testing "with seek if" "dd seek=0 if=input $opt" "I WANT\n" "I WANT\n" ""

# Testing only 'notrunc', 'noerror', 'fsync', 'sync'

testing "conv=notrunc" "dd conv=notrunc $opt" "I WANT\n" "" "I WANT\n"
testing "conv=notrunc with IF" "dd conv=notrunc if=input $opt" "I WANT\n" \
  "I WANT\n" ""

testing "conv=noerror" "dd conv=noerror $opt" "I WANT\n" "" "I WANT\n"
testing "conv=noerror with IF" "dd conv=noerror if=input $opt" "I WANT\n" \
  "I WANT\n" ""

testing "conv=fsync" "dd conv=fsync $opt" "I WANT\n" "" "I WANT\n"
testing "conv=fsync with IF" "dd conv=fsync if=input $opt" "I WANT\n" \
  "I WANT\n" ""

testing "conv=sync" "dd conv=sync $opt | head -n 1" "I WANT\n" "" "I WANT\n"
testing "conv=sync with IF" "dd conv=sync if=input $opt | head -n 1" "I WANT\n" \
  "I WANT\n" ""

# status=noxfer|none
testing "status=noxfer" "dd if=input status=noxfer ibs=1 2>&1" "input\n6+0 records in\n0+1 records out\n" "input\n" ""
testing "status=none" "dd if=input status=none ibs=1 2>&1" "input\n" "input\n" ""
