1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 02:09:32 +02:00

Update to new device DB.

This commit is contained in:
Simo Kinnunen 2014-06-18 22:51:39 +09:00
parent 760e09290f
commit b9484019a3
8 changed files with 32 additions and 53 deletions

View file

@ -613,19 +613,19 @@ program
}) })
program program
.command('generate-fake-device') .command('generate-fake-device [model]')
.description('generates a fake device for testing') .description('generates a fake device for testing')
.option('-n, --number <n>' .option('-n, --number <n>'
, 'how many devices to create (defaults to 1)' , 'how many devices to create (defaults to 1)'
, Number , Number
, 1) , 1)
.action(function(options) { .action(function(model, options) {
var log = logger.createLogger('cli:generate-fake-device') var log = logger.createLogger('cli:generate-fake-device')
, fake = require('./util/fakedevice') , fake = require('./util/fakedevice')
, n = options.number , n = options.number
function next() { function next() {
return fake.generate() return fake.generate(model)
.then(function(serial) { .then(function(serial) {
log.info('Created fake device "%s"', serial) log.info('Created fake device "%s"', serial)

View file

@ -197,7 +197,7 @@ dbapi.saveDeviceIdentity = function(serial, identity) {
, sdk: identity.sdk , sdk: identity.sdk
, display: identity.display , display: identity.display
, phone: identity.phone , phone: identity.phone
, name: identity.name , product: identity.product
})) }))
} }

View file

@ -1,4 +1,5 @@
var syrup = require('syrup') var syrup = require('syrup')
var deviceData = require('stf-device-db')
var devutil = require('../../../util/devutil') var devutil = require('../../../util/devutil')
var logger = require('../../../util/logger') var logger = require('../../../util/logger')

View file

@ -27,10 +27,10 @@ module.exports = syrup.serial()
, identity.model , identity.model
, identity.version , identity.version
, identity.abi , identity.abi
, identity.name
, identity.sdk , identity.sdk
, new wire.DeviceDisplayMessage(identity.display) , new wire.DeviceDisplayMessage(identity.display)
, new wire.DevicePhoneMessage(identity.phone) , new wire.DevicePhoneMessage(identity.phone)
, identity.product
)) ))
]) ])
}) })

View file

@ -5,52 +5,28 @@ var logger = require('./logger')
var log = logger.createLogger('util:datautil') var log = logger.createLogger('util:datautil')
var aliases = {
'KYY22': 'L02'
, 'SH-06DNERV': 'SH-06D_NERV'
}
var datautil = module.exports = Object.create(null) var datautil = module.exports = Object.create(null)
datautil.applyData = function(device) { datautil.applyData = function(device) {
var model = device.model var match = deviceData.find({
var name = device.name model: device.model
, name: device.product
})
if (model) { if (match) {
var match = deviceData.find({model: model, name: name}) device.name = match.name.id
device.releasedAt = match.date
if (!match) { device.image = match.image
if (aliases[model]) { device.cpu = match.cpu
match = deviceData.find({model: aliases[model], name: name}) device.memory = match.memory
} }
else { else {
if (!match) { log.warn(
model = model.replace(/ /g, '_') 'Device database does not have a match for device "%s" (model "%s"/"%s")'
match = deviceData.find({model: model, name: name}) , device.serial
, device.model
if (!match) { , device.product
model = model.replace(/_/g, '') )
match = deviceData.find({model: model, name: name})
}
}
}
}
if (match) {
device.name = match.name.id
device.model = match.name.long
device.releasedAt = match.date
device.image = model + '.jpg' // TODO: check for icon/photo file existence
device.cpu = match.cpu
device.memory = match.memory
}
else {
log.warn(
'Device database does not have a match for device "%s" (model "%s")'
, device.serial
, device.model
)
}
} }
return device return device

View file

@ -133,7 +133,7 @@ devutil.makeIdentity = function(serial, properties) {
, version = properties['ro.build.version.release'] , version = properties['ro.build.version.release']
, sdk = properties['ro.build.version.sdk'] , sdk = properties['ro.build.version.sdk']
, abi = properties['ro.product.cpu.abi'] , abi = properties['ro.product.cpu.abi']
, name = properties['ro.product.name'] , product = properties['ro.product.name']
// Remove brand prefix for consistency // Remove brand prefix for consistency
if (model.substr(0, brand.length) === brand) { if (model.substr(0, brand.length) === brand) {
@ -156,6 +156,6 @@ devutil.makeIdentity = function(serial, properties) {
, version: version , version: version
, abi: abi , abi: abi
, sdk: sdk , sdk: sdk
, name: name , product: product
} }
} }

View file

@ -4,9 +4,9 @@ var uuid = require('node-uuid')
var _ = require('lodash') var _ = require('lodash')
var dbapi = require('../db/api') var dbapi = require('../db/api')
var devices = require('stf-device-db') var devices = require('stf-device-db/dist/devices-latest')
module.exports.generate = function() { module.exports.generate = function(wantedModel) {
var serial = util.format( var serial = util.format(
'fake-%s' 'fake-%s'
, uuid.v4(null, new Buffer(16)).toString('base64') , uuid.v4(null, new Buffer(16)).toString('base64')
@ -20,11 +20,12 @@ module.exports.generate = function() {
, status: 'OFFLINE' , status: 'OFFLINE'
}) })
.then(function() { .then(function() {
var model = wantedModel || _.sample(Object.keys(devices))
return dbapi.saveDeviceIdentity(serial, { return dbapi.saveDeviceIdentity(serial, {
platform: 'Android' platform: 'Android'
, manufacturer: 'Foo Electronics' , manufacturer: 'Foo Electronics'
, operator: 'Loss Networks' , operator: 'Loss Networks'
, model: _.sample(Object.keys(devices)) , model: model
, version: '4.1.2' , version: '4.1.2'
, abi: 'armeabi-v7a' , abi: 'armeabi-v7a'
, sdk: 8 + Math.floor(Math.random() * 12) , sdk: 8 + Math.floor(Math.random() * 12)
@ -46,6 +47,7 @@ module.exports.generate = function() {
, network: 'LTE' , network: 'LTE'
, phoneNumber: '0000000000' , phoneNumber: '0000000000'
} }
, product: model
}) })
}) })
.then(function() { .then(function() {

View file

@ -172,10 +172,10 @@ message DeviceIdentityMessage {
required string model = 5; required string model = 5;
required string version = 6; required string version = 6;
required string abi = 7; required string abi = 7;
required string name = 12;
required string sdk = 8; required string sdk = 8;
required DeviceDisplayMessage display = 9; required DeviceDisplayMessage display = 9;
required DevicePhoneMessage phone = 11; required DevicePhoneMessage phone = 11;
optional string product = 12;
} }
message DeviceProperty { message DeviceProperty {