Roman Reiss | f29762f | 2015-05-19 11:00:06 | [diff] [blame] | 1 | 'use strict'; |
Ryan Dahl | a0159b4 | 2010-12-04 23:20:34 | [diff] [blame] | 2 | var common = require('../common'); |
| 3 | var assert = require('assert'); |
Ryan Dahl | 92789b1 | 2010-12-05 00:11:57 | [diff] [blame] | 4 | var join = require('path').join; |
muddletoes | 6fff0f7 | 2014-11-12 18:42:34 | [diff] [blame] | 5 | var childProcess = require('child_process'); |
Ryan Dahl | a0159b4 | 2010-12-04 23:20:34 | [diff] [blame] | 6 | var fs = require('fs'); |
Ryan Dahl | fe89cab | 2010-06-10 21:59:06 | [diff] [blame] | 7 | |
Fedor Indutny | fc26fd6 | 2014-01-23 09:35:18 | [diff] [blame] | 8 | var stdoutScript = join(common.fixturesDir, 'echo-close-check.js'); |
Ryan Dahl | 92789b1 | 2010-12-05 00:11:57 | [diff] [blame] | 9 | var tmpFile = join(common.fixturesDir, 'stdin.txt'); |
Ryan Dahl | fe89cab | 2010-06-10 21:59:06 | [diff] [blame] | 10 | |
Colton Baker | 87286cc | 2011-10-04 22:08:18 | [diff] [blame] | 11 | var cmd = '"' + process.argv[0] + '" "' + stdoutScript + '" < "' + |
| 12 | tmpFile + '"'; |
Ryan Dahl | fe89cab | 2010-06-10 21:59:06 | [diff] [blame] | 13 | |
Oleg Efimov | 0ce9cba | 2010-12-04 22:45:52 | [diff] [blame] | 14 | var string = 'abc\nümlaut.\nsomething else\n' + |
| 15 | '南越国是前203年至前111年存在于岭南地区的一个国家,国都位于番禺,' + |
| 16 | '疆域包括今天中国的广东、广西两省区的大部份地区,福建省、湖南、贵州、' + |
| 17 | '云南的一小部份地区和越南的北部。南越国是秦朝灭亡后,' + |
| 18 | '由南海郡尉赵佗于前203年起兵兼并桂林郡和象郡后建立。前196年和前179年,' + |
| 19 | '南越国曾先后两次名义上臣属于西汉,成为西汉的“外臣”。前112年,' + |
| 20 | '南越国末代君主赵建德与西汉发生战争,被汉武帝于前111年所灭。南越国共存在93年,' + |
| 21 | '历经五代君主。南越国是岭南地区的第一个有记载的政权国家,' + |
| 22 | '采用封建制和郡县制并存的制度,' + |
| 23 | '它的建立保证了秦末乱世岭南地区社会秩序的稳定,' + |
| 24 | '有效的改善了岭南地区落后的政治、##济现状。\n'; |
Ryan Dahl | fe89cab | 2010-06-10 21:59:06 | [diff] [blame] | 25 | |
Felix Geisendörfer | c143cba | 2010-04-27 23:17:28 | [diff] [blame] | 26 | |
Oleg Efimov | 0ce9cba | 2010-12-04 22:45:52 | [diff] [blame] | 27 | console.log(cmd + '\n\n'); |
Felix Geisendörfer | c143cba | 2010-04-27 23:17:28 | [diff] [blame] | 28 | |
| 29 | try { |
| 30 | fs.unlinkSync(tmpFile); |
| 31 | } catch (e) {} |
| 32 | |
Ryan Dahl | fe89cab | 2010-06-10 21:59:06 | [diff] [blame] | 33 | fs.writeFileSync(tmpFile, string); |
Felix Geisendörfer | c143cba | 2010-04-27 23:17:28 | [diff] [blame] | 34 | |
muddletoes | 6fff0f7 | 2014-11-12 18:42:34 | [diff] [blame] | 35 | childProcess.exec(cmd, function(err, stdout, stderr) { |
Felix Geisendörfer | c143cba | 2010-04-27 23:17:28 | [diff] [blame] | 36 | fs.unlinkSync(tmpFile); |
| 37 | |
| 38 | if (err) throw err; |
Ryan Dahl | ba792ea | 2010-06-24 00:40:51 | [diff] [blame] | 39 | console.log(stdout); |
Oleg Efimov | 0ce9cba | 2010-12-04 22:45:52 | [diff] [blame] | 40 | assert.equal(stdout, 'hello world\r\n' + string); |
| 41 | assert.equal('', stderr); |
Felix Geisendörfer | c143cba | 2010-04-27 23:17:28 | [diff] [blame] | 42 | }); |